Как сделать так, чтобы текстовое поле было буквенно-цифровым, но без начальных цифр? - PullRequest
0 голосов
/ 02 ноября 2009

Мое веб-приложение содержит текстовое поле, для которого я хотел бы ограничить его ввод. Я хотел бы запретить пользователю вводить текст, который:

  • Начинается с пробела
  • Начинается с чего-то, кроме цифры
  • Содержит буквенно-цифровые символы после начального символа.

Спасибо за ваши предложения!

Ответы [ 2 ]

3 голосов
/ 02 ноября 2009

Не начинать с пробела буквенно-цифрового: [a-zA-Z]+
После 0 или более буквенно-цифровой: [a-zA-Z0-9]*

Конечное выражение

^[a-zA-Z]+[a-zA-Z0-9]*$
3 голосов
/ 02 ноября 2009

Для символов ASCII вы можете использовать:

^[a-zA-Z][a-zA-Z0-9]*$ // Note you don't need the "+" after the first character group.
                       // or...
(?i:^[a-z][a-z0-9]*$)  // Slightly shorter, albeit more unreadable, syntax (?i: ... ) makes the expression case-insensitive 

Если вы хотите сопоставить пустую строку, просто оберните выражение в «(...)?», Например:

^([a-zA-Z][a-zA-Z0-9]*)?$

Если вы хотите работать в Юникоде, вы можете использовать:

^\p{L}[\p{L}\p{Nd}]*$

Unicode w. пустая строка:

^(\p{L}[\p{L}\p{Nd}]*)?$

Чтобы узнать больше о возможностях Unicode в регулярных выражениях, см. на этой странице на Regular-Expressions.info .

Редактировать

Просто собрал все возможности в одном ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...