2010-12-08 8 views
4

Я работаю над написанием системы входа в систему PHP. У меня есть все, что мне нужно, но я хотел бы проверить, что имя пользователя, введенное во время регистрации, содержит только буквенно-цифровые символы. Итак, как я могу взять переменную, скажем $ username, и убедиться, что она содержит только буквенно-цифровые символы?Проверка имени пользователя PHP

ответ

20
if(preg_match('/^\w{5,}$/', $username)) { // \w equals "[0-9A-Za-z_]" 
    // valid username, alphanumeric & longer than or equals 5 chars 
} 

ИЛИ

if(preg_match('/^[a-zA-Z0-9]{5,}$/', $username)) { // for english chars + numbers only 
    // valid username, alphanumeric & longer than or equals 5 chars 
} 
+0

Эй, спасибо за быстрый ответ! Я должен подождать 10 минут, прежде чем он позволит мне принять ваш ответ, поэтому я сделаю это позже. – 2010-12-08 03:28:24

+1

`preg_match` лучше подходит здесь, также нет необходимости в символьном классе. – codaddict 2010-12-08 03:32:41

0

попробовать этот

function filterName ($name, $filter = "[^a-zA-Z0-9\-\_\.]"){ 
    return preg_match("~" . $filter . "~iU", $name) ? false : true; 
} 

if (!filterName ($name)){ 
print "Not a valid name"; 
} 
5

Лучшим способом я рекомендую это: -

$str = ""; 
function validate_username($str) 
{ 
    $allowed = array(".", "-", "_"); // you can add here more value, you want to allow. 
    if(ctype_alnum(str_replace($allowed, '', $str))) { 
     return $str; 
    } else { 
     $str = "Invalid Username"; 
     return $str; 
    } 
} 
Смежные вопросы