2009-10-24 12 views
2

Je cherchais un moyen de créer une fonction pour vérifier si une chaîne contient autre chose que des lettres minuscules et des nombres, et si elle retourne false. J'ai cherché sur internet mais tout ce que je peux trouver, ce sont les anciennes méthodes qui nécessitent d'utiliser des fonctions désormais obsolètes en PHP5.Accepter seulement certains caractères dans la chaîne

Répondre

2
function check_input($text) { 
    if(preg_match("/[^a-z0-9]/", $text)) { 
    return false; 
    } 
    else { 
    return true; 
    } 
} 
0

Pour mixen les choses un peu

<? 
$input = "hello world 123!"; 
$digits = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0"); 

if (ctype_alnum($input)) 
{ 
    if (ctype_lower(str_replace($digits, "", $input))) 
    { 
     // Input is only lowercase and digits 
    } 
} 
?> 

Mais regex est probablement la voie à suivre ici! =)

1

Utilisez une regex. Utilisez preg_match().

$matches = preg_match('/[^a-z0-9]/', $string); 

Alors maintenant, si $matches a 1, vous savez le $string contient mauvais caractères. Autrement $matches est 0, et le $string est OK.

+1

Rappelez-vous que cette fonction peut revenir aussi faux, de sorte que vous devriez vérifier à l'aide de l'opérateur de comparaison de type '' ===: $ = matchs preg_match ('/ [^ a-z0-9]/', $ chaîne); if ($ correspond === 0) { // code ici quand il correspond } –

Questions connexes