PHP: простые регулярные выражения для соответствия длине? - PullRequest
11 голосов
/ 07 февраля 2010

Я создаю систему регистрации, которая должна проверять имя / пароль и т. Д. С помощью REGEX (и предпочитаю), что я до сих пор получил:

//Check so numbers aren't first, such as 00foobar
preg_match('/^(?!\d)[a-z0-9]+$/iD',$usrname);
//Just simple check
preg_match('/^[a-zA-Z0-9]+$/',$psword);

Но я должен делать глупости в выражениях IF, таких как:

if strlen($psword) > 30 || if (strlen($psword) < 4) ....

Как бы я включил проверку длины в моих двух исходных операторах регулярных выражений? Это сделало бы меня таким счастливым ..

Ответы [ 2 ]

18 голосов
/ 07 февраля 2010

то же самое, но с использованием \ w и \ d для слова и цифр, но вы можете также включить основные символы, такие как %!?/ ... etc...

preg_match('/^[\w\d]{4,30}$/',$psword);

{n,v} проверял бы для минимального n и максимального v элементов ранее.

как A{2,3} будет проверяться для AA и AAA. Вы можете посмотреть там для получения дополнительных ссылок

Точно так же, если вы хотите установить только минимум патерна, 1015 * сделает это. Например:

preg_match('/^[\w\d]{4,}$/',$psword);
4 голосов
/ 07 февраля 2010

Я думаю, это должно сработать:

preg_match ( '/ ^ [A-Za-Z0-9] {4,30} $ /', $ psword);

...