En JS He utilizado este código:¿Cómo verificar si una cadena de php contiene solo letras y dígitos en inglés?
if(string.match(/[^A-Za-z0-9]+/))
pero no sé, cómo hacerlo en PHP.
En JS He utilizado este código:¿Cómo verificar si una cadena de php contiene solo letras y dígitos en inglés?
if(string.match(/[^A-Za-z0-9]+/))
pero no sé, cómo hacerlo en PHP.
Use preg_match().
if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
// string contains only english letters & digits
}
Puede usar la función preg_match() por ejemplo.
if (preg_match('/[^A-Za-z0-9]+/', $str))
{
// ok...
}
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
// ...
}
Tener un vistazo a este acceso directo
if(!preg_match('/[^\W_ ] /',$string)) {
}
los partidos class [^\W_]
cualquier letra o dígito pero no subrayan. Y tenga en cuenta el símbolo !
. Le ahorrará escanear toda la entrada del usuario.
if(ctype_alnum($string)) {
echo "String contains only letters and numbers.";
}
else {
echo "String doesn't contain only letters and numbers.";
}
No estoy seguro de por qué las personas no votan la función ctype. No puedo crear imágenes. Existe un problema de rendimiento con el rango de funciones ctype. –
ctype_alnum dependen de la configuración regional, por lo que podría no funcionar como lo desees. – thethakuri
si necesita comprobar si es inglés o no. podrías usar la función de abajo podría ayudar a alguien ..
function is_english($str)
{
if (strlen($str) != strlen(utf8_decode($str))) {
return false;
} else {
return true;
}
}
PHP puede comparar una cadena con una expresión regular usando preg_match(regex, string)
así:
if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
// $string contains only English letters and digits
}
sí. parece más eficiente. Buscar el primer carácter fuera de rango parece más sensato que escanear una cadena completa. –
N.B inglés verison of above link here: http://php.net/manual/en/function.preg-match.php –
Ok, he actualizado el enlace a la versión en inglés. –