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

Я использую Проверка Jquery .

В настоящее время у меня есть имя пользователя, которое я хочу проверить для этого имени:

  • Не пусто
  • Наличие
  • Без пробелов, я добавляю этот метод:

    $.validator.addMethod("nowhitespace", function(value, element) {
         return this.optional(element) || /^\S+$/i.test(value);
    }, "  No white space please");
    
  • Буквенно-

    $.validator.addMethod("alphanumeric", function(value, element) {
         return this.optional(element) || /^[a-zA-Z0-9]+$/i.test(value);
    }, "  Alphanumeric. Only numbers and alphabet allowed");
    
  • Первые символы должны быть алфавитными, не могут быть цифровыми.

Я застрял на последней проверке. Как написать регулярное выражение для проверки правильности первого символа ДОЛЖНО быть алфавитом?

КСТАТИ:

Кажется, проблема заключается в отсутствии пробелов. Я попробовал свой сценарий, 1 пробел разрешен, но 2 пробела не разрешен, почему?

Ответы [ 2 ]

9 голосов
/ 20 августа 2009

Использование

/^[A-Za-z][A-Za-z0-9]+$/

для буквенно-цифрового метода.

Соответствует любой строке, состоящей из буквы, за которой следуют один или несколько буквенно-цифровых символов. Это предполагает, что односимвольные имена пользователей не допускаются. Если вы хотите разрешить использование односимвольных имен пользователей, измените шаблон на:

/^[A-Za-z][A-Za-z0-9]*$/

Таким образом, нет необходимости в отдельной проверке первого символа. Кстати, это также должно устранить необходимость проверки пробелов, поскольку строка, состоящая полностью из буквенно-цифровых символов, по определению не может содержать пробелов.

2 голосов
/ 20 августа 2009
value.substr(0, 1).match(/[A-Za-z]/) != null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...