вот вам пример
console.clear();
const str = 'ddddd'
const reg = /^d{3,10}$/g;
console.log(reg.test(str)); //true
console.log(reg.test(str)); //false
console.log('****************');
if (reg.test(str) === false) {
console.log('False');
} else if (reg.test(str) === true) {
console.log('True');
} else {
console.log('Not true and not false'); // ! Переходит сюда!
}
Причина тут
https://developer.mozilla.org/ru/docs/Web/JavaScri...метод test(), вызванный несколько раз на одном и том же экземпляре регулярного выражения, будет начинать проверку с конца предыдущего сопоставления.
В общем паттерн регулярки хранит в себе информацию о предыдущем вызове. Используйте лучше String.prototype.match()