Estoy a punto de crear un formulario de registro para mi sitio web. Necesito verificar la variable y aceptarla solo si contiene letra, número, _ o -.
¿Cómo se puede hacer con regex? Solía trabajar con ellos preg_replace()
, pero creo que este no es el caso. Además, sé que la función "ereg" está muerta. ¿Alguna solución?
Respuestas
4 para la respuesta № 1esta expresión regular es bastante común en estos días.
if(preg_match("/^[a-z0-9-_]+$/i",$username))
{
// Ok
}
1 para la respuesta № 2
Utilizar preg_match
:
preg_match("/^[w-]+$/D", $str)
aquí w
describe letras, dígitos y el _
, asi que [w-]+
coincide con una o más letras, dígitos, _
y -
. ^
y $
son llamados así anclajes que denotan el comienzo y el final de la cadena respectivamente. los re modificador evita que $
realmente coincide con el final de la cadena y no es seguido por un salto de línea.
Tenga en cuenta que la letra y los dígitos que coinciden con w
depende de la ubicación actual y puede coincidir con otras letras o dígitos que no sean [a-zA-Z0-9]
. Así que si solo quieres esto, úsalos explícitamente. Y si quieres permitir más que estos, también puedes probar Clases de caracteres que se describen por las propiedades de caracteres Unicode. me gusta p{L}
para todas las letras Unicode.
0 para la respuesta № 3
Prueba preg_match (). http://php.net/manual/en/function.preg-match.php