2013-11-20 3 views
0

Я пытаюсь использовать регулярное выражение, чтобы проверить, считается ли имя пользователя действительным. Чтобы имя пользователя было действительным, оно должно составлять от 2 до 10 символов. Он должен начинаться с буквы нижнего регистра, и он должен состоять только из строчных букв, заглавных букв или цифр.Regex для проверки имени пользователя

Вот то, что я до сих пор

return preg_match("/^[a-z]([a-zA-Z0-9]{2,10})$/", $name); 
+2

Если, вероятно, '{1, 9} ', потому что вы уже использовали первую букву. – Vlad

+0

Извините, что 3 и 8 были старыми значениями, с которыми я возился, я хотел сделать 2 и 10, я попробую 1 и 9, хотя –

+0

Вы должны быть осторожны, так как это выражение будет соответствовать «iddhartha» в названии «Siddhartha». Вам нужно сопоставить целые слова, возможно, попробуйте поймать пространство до и после имени? – Siddhartha

ответ

0

Для согласованности, ваше выражение захвата должен включать в себя все имя пользователя (в вашем случае, если вы пропускаете первую букву). Вы также заметили, что вам нужно использовать только {1,9} для второй половины:

^([a-z]{1}[a-zA-Z\d]{1,9})$ 
  • этого соответствие один строчной буквы, чтобы начать с, а затем между 1 и 9 a-zA-Z0-9 с потом, и захватив полное имя пользователя.

Модификаторы (если требуется): mg (многоканальный, матч-все [при тестировании с блоком нескольких строк])

Демо: http://regex101.com/r/qW6kN5

Смежные вопросы