Regex для подтверждения имени пользователя в Javascript - PullRequest
0 голосов
/ 26 апреля 2020

Ниже приведено регулярное выражение, которое я пытался проверить в соответствии с нижеприведенными критериями, но в некоторых случаях его не удалось. Дайте мне знать, что я делаю не так.

Regex-

/[a-z]|\d|\_{4, 16}$/.test(username)

Критерии -

Допустимые символы: :

  • строчные буквы
  • Числа
  • Подчеркивание
  • Длина должна быть от 4 до 16 символов (оба включены).

код

function validateUsr(username) {
  res =  /[a-z]|\d|\_{4, 16}$/.test(username) 
  return res
}

console.log(validateUsr('asddsa')); // Correct Output - true
console.log(validateUsr('a')); // Correct Output - false
console.log(validateUsr('Hass')); // Correct Output - false
console.log(validateUsr('Hasd_12assssssasasasasasaasasasasas')); // Correct Output - false
console.log(validateUsr('')); // Correct Output - false
console.log(validateUsr('____')); // Correct Output - true
console.log(validateUsr('012')); // Correct Output - false
console.log(validateUsr('p1pp1')); // Correct Output - true
console.log(validateUsr('asd43 34')); // Correct Output - false
console.log(validateUsr('asd43_34')); // Correct Output - true

1 Ответ

3 голосов
/ 26 апреля 2020

Вы можете присоединить шаблоны к одному символьному классу и применить ограничивающий квантификатор к классу, а не только к шаблону _. Обратите внимание, что пробел имеет смысл внутри шаблона, и {4, 16} соответствует строке {4, 16}, он не анализируется как квантификатор.

Вы можете использовать

var regex = /^[a-z\d_]{4,16}$/;
function validateUsr(username) {
  return regex.test(username) 
}

console.log(validateUsr('asddsa')); // Correct Output - true
console.log(validateUsr('a')); // Correct Output - false
console.log(validateUsr('Hass')); // Correct Output - false
console.log(validateUsr('Hasd_12assssssasasasasasaasasasasas')); // Correct Output - false
console.log(validateUsr('')); // Correct Output - false
console.log(validateUsr('____')); // Correct Output - true
console.log(validateUsr('012')); // Correct Output - false
console.log(validateUsr('p1pp1')); // Correct Output - true
console.log(validateUsr('asd43 34')); // Correct Output - false
console.log(validateUsr('asd43_34')); // Correct Output - true

^[a-z\d_]{4,16}$ - см. Его демо - образец означает:

  • ^ - начало строки
  • [ - начало класса символов:
    • a-z - строчные буквы ASCII
    • \d - ASCII di git
    • _ - подчеркивание
  • ]{4,16} - конец класса, повторите от четырех до шестнадцати раз
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...