@sul_evil

Регулярные выражения, почему нельзя вот так?

Нужно в тексте найти два последовательные цифры, почему нужно писать именно (?=\D*\d{2})? А не просто (?=\d{2}).

let sampleWord = "banan1"; (Your regex should not match the string)
let sampleWord = " bana12"; (Your regex should match the string)
let sampleWord = "1a2bcde"; (Your regex should not match the string)

let pwRegex = /(?=\w{6})(?=\w*\d{2})/;
let result = pwRegex.test(sampleWord);

Он проверяет, есть ли в тексте 6 символов, и в нём же должны быть две цифры идущих последовательно.
Если вводим (?=\D*\d{2}), то возвращает true, а если (?=\d{2}), false. Я просто хочу механику узнать, не могу найти, я так понимаю что он делает, ищет шаблон цифр вначале, но зачем?
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Просто - это (\d{2}) .

Но в примере ниже у Вас что-то гораздо более сложное, там ищется не просто две цифры.
Короче говоря, попробуйте расписать действие каждого элемента выражения, тогда станет ясно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы