Как проверить шаблон во входной строке? - PullRequest
2 голосов
/ 26 февраля 2012

Если бы у меня была веб-страница, и мне нужно было убедиться, что пользовательский ввод для переменной - это только буквы (верхняя и нижняя), цифры и тире, а длина должна составлять ровно 20 символов, как это можно сделать?

Ответы [ 3 ]

4 голосов
/ 26 февраля 2012

Это довольно легко сделать с помощью регулярных выражений:

echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcd');
0
echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcdefghijkmlnopqrst');
1
3 голосов
/ 26 февраля 2012

Вы можете использовать регулярные выражения. См. preg_match.

Ваше регулярное выражение может выглядеть примерно так:

/^[A-Za-z0-9\-]{20}$/

или

/^[\w-]{20}$/
0 голосов
/ 26 февраля 2012

если вы не доверяете регулярному выражению из-за производительности, вы можете использовать следующее, что займет больше времени:

function checkalphanum($str){
    $allowed = "0123456789abcdefghijklmnopqrstuvwxyz_-ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if(strlen($str) == 20){ return false;}
    for($i=0; $i < count($str); $i++){
        if(strpos($allowed, substr($str, $i, 1)) == -1){
            return false;
        }
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...