JavaScript найти и заменить динамический шаблон в строке - PullRequest
1 голос
/ 16 октября 2011

У меня есть динамический шаблон, который я использовал с помощью приведенного ниже кода, чтобы найти

var matcher = new RegExp("%" + dynamicnumber + ":", "g");
var found = matcher.test(textinput);

Мне нужно, чтобы шаблон имел новое требование, которое должно включать дополнительные конечные 5 символов y или yп.А затем удалите его или замените его на '' (ничего).

Я пробовал этот синтаксис для шаблона, но, очевидно, он не работает.

var matcher = new RegExp("%" + dynamicnumber + ":"  + /([yn]{5})/, "g");

Любой совет приветствуется

TIA.

Ответы [ 3 ]

2 голосов
/ 16 октября 2011

Используйте кавычки вместо слешей:

var matcher = new RegExp("%" + number + ":([yn]{5})", "g");

Кроме того, убедитесь, что dynamicnumber или number являются действительными RegExps. специальные символы должны начинаться с двойной косой черты, \\, буквальная двойная косая черта должна быть записана в виде четырех косых черт: \\\\.

2 голосов
/ 16 октября 2011

Вы должны только передать строку регулярного выражения в RegExp c'tor:

var re = new RegExp("%" + number + ":"  + "([yn]{5})", "g");
2 голосов
/ 16 октября 2011
var matcher = new RegExp("(%" + number + ":)([yn]{5})", "g");

Затем замените его содержимым первой группы захвата.

...