Разная форма записи регулярного выражения - разный результат

Планировал, с помощью регулярного выражения, проверить строку на длину (так надо). Но неожиданно столкнулся с тем, что разная форма записи одного и тогоже регулярного выражения, выдает разный результат.

Почему?

const str = 'qwerty';
console.log(new RegExp('^.{4,15}\\b','g').test(str))
console.log(/^.{4,15}\\b/g.test(str));


Ответы (1 шт):

Автор решения: Ainar-G

Вы забыли про то, что в литерале экранирование работает по-другому:

/^.{4,15}\\b/g.test('qwerty');
// => false
/^.{4,15}\b/g.test('qwerty');
// => true
→ Ссылка