alex4answ
@alex4answ

Почему не работает регулярное выражение через new RegExp?

Столкнулся с непонятной мне вещью.

Регулярные выражения работают и дают разный результат:
var x = "84654656";
var pattern = new RegExp('^([\+])?[\d]+$');
var pattern2 = /^([\+])?[\d]+$/;

var result = (pattern.test(x))? "da" : "net";
var result2 = (pattern2.test(x))? "da" : "net";

$('#result').text(result);
$('#result2').text(result2);


через new RegExp ответ - нет, через /regexp/ - да.

вот пример:
https://jsfiddle.net/ku386Ljz/1/


Почему такое происходит, и как с этим бороться?
  • Вопрос задан
  • 544 просмотра
Решения вопроса 1
zendor
@zendor
Нужно экранировать обратный слеш в строке:
RegExp('^([\\+])?[\\d]+$');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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