@RuslanTimuziyev
Немного кодер

Как починить простую регулярку?

https://jsfiddle.net/an0efLLk/
Пример до жути простой, но он является частью шаблонизатора, который я пишу, поэтому я его упростил и запихнул в fiddle.
Так вот вопрос, почему
console.log(view.search(pattern));
выдает "-1"?
Если мы прямо пишем ..
view = view.replace('{: 5 + 5 :}', fn);
, то на странице появляется результат выражения - 10.
console.clear();
var view = document.querySelector('body').innerHTML;
var fn = '' + new Function('return 5 + 5')();
var exp = '5 + 5';
var	pattern = new RegExp(
  '{: ' + exp + ' :}', 'g'
);
console.log(pattern);
view = view.replace(pattern, fn);
console.log(view.search(pattern));
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Плюс это спецсимвол же
var pattern = /{: 5 \+ 5 :}/g

И вы сперва делаете replace в потом search, когда искать уже нечего.

https://jsfiddle.net/an0efLLk/1/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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