/ / Comprobación de cadenas, solo letras y números, excepto ambos: php, regex

Comprobación de cadenas, solo letras y números, excepto ambos: php, regex

"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false

¿Es posible la expresión regular solo letras y números excepto ambos?
o
Comprobar la función de PHP?

Respuestas

1 para la respuesta № 1
^(?=(?:d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$

Otra variación. Ver demo.

https://regex101.com/r/sH8aR8/11

$re = "/^(?=(?:\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$/m";
$str = "Hellon12345nHello1n123H";

preg_match_all($re, $str, $matches);

2 para la respuesta № 2

Regex:

/^[A-za-z]*|[0-9]*$/

Verifique el comienzo de la línea, luego cualquier número de letras O cualquier número de números, luego el final de la línea.

Una línea en blanco devolverá verdadero. Si eso es un problema, cambie el * a un +.


2 para la respuesta № 3

Podrías usar algo así: ^([A-Za-z]+)|([0-9]+)$. Esto asegurará que la cadena esté llena de letras exclusivamente o números exclusivamente, pero no ambos.

Puedes comprobar la expresión regular aquí.