Пароль проверки кода не проходит каждый случайный тест, не понимаю, почему? - PullRequest
0 голосов
/ 29 сентября 2018

Я новичок в кодировании / программировании и пытаюсь решить как можно больше проблем на codewars.com

Я столкнулся со следующей проблемой проверки регулярных выражений https://www.codewars.com/kata/regex-password-validation/train/javascript

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

Длина не менее шести символов
содержит строчную букву
содержит прописную букву
содержитчисло
Допустимые пароли будут состоять только из буквенно-цифровых символов.

Вот мой код

function validate(password){
  return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{6,}).*/g.test(password));
}

Я прошел все выборочные тесты и большинство случайных тестов, но есть два, которые я продолжаю терпеть неудачу.У меня нет возможности увидеть ввод, поэтому я не знаю, почему я терплю неудачу.Любые предложения с благодарностью:)

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Я вижу одну проблему с вашим регулярным выражением: он позволяет any символам быть в пароле (после того, как он проверил, что есть одна строчная буква, одна заглавная буква и одно число).Не зная, почему тесты не пройдены, мы можем по крайней мере решить эту проблему:

function validate(password){
  return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{6,}*/.test(password));
}
0 голосов
/ 29 сентября 2018

Вы не следуете этому правилу:

Допустимые пароли будут состоять только из буквенно-цифровых символов

Вы разрешаете им содержать любые символы до тех пор, пока другиеправила проходят.Измените .* в конце на ^[a-zA-Z0-9]*$, чтобы убедиться, что каждый символ является буквенно-цифровым.

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