2011-01-24 2 views
3

В JavaScript мы добавляем /g к строке без кавычек, чтобы обозначить регулярное выражение.Использование строковой переменной в качестве регулярного выражения

Что делать, если у меня есть строка в переменной и вы хотите использовать ее как регулярное выражение?

Возможно ли это? Если да, может ли кто-нибудь показать мне примерный код?

Спасибо.

ответ

6

Используйте это:

new RegExp("your regex here", "modifiers"); 

И заметьте, что /g не разделителем для регулярных выражений, это глобальный модификатор. Регулярное выражение выглядит так: /your regex here/modifiers. modifiers может быть комбинацией g, i и m. Здесь все объяснено: http://www.regular-expressions.info/javascript.html

5

/g - это флаг, обозначающий глобальный (соответствует всем экземплярам регулярного выражения), он не обозначает регулярное выражение, а просто флаг.

Если вы хотите, чтобы динамическое регулярное выражение использовало new RegExp. Использование здесь: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp

+0

Фактически, '/ g' состоит из флага * и * ведущей косой черты. –

1

Спасибо, Габи, вы много помогли. Тем не менее, я должен был поставить регулярное выражение часть (переменная часть) без кавычек, чтобы заставить его работать:

new RegExp(yourRegExp, "modifiers"). 

Я надеюсь, что это поможет кому-то.

Смежные вопросы