¡¡¡Espero que alguien pueda ayudar!!!
En la codificación de una validación de formularios, me dieron el mensaje de error "Deprecated: Function ereg() is deprecated in E:Zacel_Developmentsa_model_watch.co.zainsert_newProf.php on line 184"
Hice una investigación y descubrí que necesito cambiar! Eregi y! Ereg para preg_match ...
Intenté esto, pero no sirvió para nada ... ¿puede alguien revisar mi código y avisar ya que estoy perplejo?
Mi código de código:
/* Check is numeric*/
$regex = "[0-9]{10}";
if(!ereg($regex,$field)){
$form->setError($fieldValue, "* Contact number invalid");
}
DEBE SER APARENTEMENTE:
/* Check is numeric*/
$regex = "[0-9]{10}";
if(!preg_match($regex,$field)){
$form->setError($fieldValue, "* Contact number invalid");
}
Y:
/* Check if valid email address */
$regex = "^[_+a-z0-9-]+(.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(.[a-z0-9-]{1,})*"
.".([a-z]{2,}){1}$";
if(!eregi($regex,$field)){
$form->setError($fieldValue, "* Email invalid");
}
DEBE SER APARENTEMENTE:
/* Check if valid email address */
$regex = "^[_+a-z0-9-]+(.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(.[a-z0-9-]{1,})*"
.".([a-z]{2,}){1}$";
if(!preg_match($regex,$field)){
$form->setError($fieldValue, "* Email invalid");
}
Esto todavía no funciona ... ¿Qué estoy haciendo mal?
Respuestas
2 para la respuesta № 1Tienes que abrir y cerrar tu patrón de expresiones regulares con un delimitador:
Así que eso:
$regex = "[0-9]{10}";
se convierte
$regex = "/[0-9]{10}/";
Si desea que el patrón sea insensible a mayúsculas y minúsculas use el i
bandera
$regex = "/somepattern/i";
0 para la respuesta № 2
Aquí tienes un ejemplo:
Más de Ereg, preg_match puede ser bastante intimidante. Para empezar aquí es un consejo de migración.
<?php
if(ereg("[^0-9A-Za-z]",$test_string)) // will be true if characters arnt 0-9, A-Z or a-z.
if(preg_match("/[^0-9A-Za-z]/",$test_string)) // this is the preg_match version. the /"s are now required.
?>