En JS j'ai utilisé ce code:
if(string.match(/[^A-Za-z0-9]+/))
mais je ne sais pas comment faire en PHP.
Utilisez preg_match () .
if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
// string contains only english letters & digits
}
if(ctype_alnum($string)) {
echo "String contains only letters and numbers.";
}
else {
echo "String doesn't contain only letters and numbers.";
}
Vous pouvez utiliser preg_match () function par exemple.
if (preg_match('/[^A-Za-z0-9]+/', $str))
{
// ok...
}
Regardez ce raccourci
if(!preg_match('/[^\W_ ] /',$string)) {
}
le class [^\W_]
correspond à toute lettre ou chiffre mais pas le trait de soulignement. Et notez le symbole !
. Cela vous évitera d'analyser toute la saisie de l'utilisateur.
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
// ...
}
si vous devez vérifier si c'est anglais ou non. vous pouvez utiliser la fonction ci-dessous. pourrait aider quelqu'un ..
function is_english($str)
{
if (strlen($str) != strlen(utf8_decode($str))) {
return false;
} else {
return true;
}
}
if (preg_match('/^[\w\s?]+$/si', $string)) {
// input text is just English or Numeric or space
}
PHP peut comparer une chaîne à une expression régulière en utilisant preg_match(regex, string)
comme ceci:
if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
// $string contains only English letters and digits
}