Подтвердить что ты не робот

Javascript String.replace с динамическими регулярными выражениями?

У меня есть следующий код, который работает, но мне нужно добавить некоторые другие вещи в объект регулярного выражения (regex2) во время выполнения. Однако text.replace не похоже на строковый объект для регулярного выражения, поэтому как я могу сделать эту работу?

var regex2 = /\|\d+:\d+/;
document.write("result = " + text.replace(regex2, '') + "<br>");
4b9b3361

Ответ 1

Вы можете создать объект регулярного выражения из строки, используя конструктор RegExp:

var regExp = new RegExp(myString);  // regex pattern string

text.replace(regExp, '');

Ответ 2

Дополнение к CMS: Конструктор RegExp имеет второй необязательный параметр flags (15.10.4 Конструктор RegExp)

var text = "This is a Test.";

var myRegExp = new RegExp('teST','i');

text.replace(myRegExp,'Example');
// -> "This is a Example."

как флаги, которые вы можете установить

  • g → глобальный поиск (все вхождения)
  • я → нечувствительность к регистру
  • m → multiline

Ответ 3

var value = "2012-09-10";
value = value.replace(/([0-9]{4})[\/-]([0-9]{2})[\/-]([0-9]{2})/,"$3/$2/$1");
alert(value);

это покажет

10/09/2012

Ответ 4

вы можете использовать eval для,

new RegExp( eval("/"+str+"/i") );

До свидания...