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

Синтаксис javascript для регулярного выражения с использованием переменной как шаблона

У меня есть переменная patt с динамическим числовым значением

var patt = "%"+number+":";

Что такое синтаксис регулярного выражения для его использования в методе test()?

Я использую этот формат

var patt=/testing/g;
var found = patt.test(textinput);

ТИА

4b9b3361

Ответ 1

Да, вы в значительной степени это сделали. Вам просто нужно передать строку регулярного выражения в конструктор RegExp. Затем вы можете вызвать его функцию test().

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

Надеюсь, что помогает:)

Ответ 2

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

Из вашего вопроса я не совсем уверен, каковы ваши критерии соответствия, но если вы хотите совместить число вместе с маркерами "%" и ":", вы бы сделали что-то вроде следующего:

var matcher = new RegExp("%" + num_to_match + ":", "g");

Вы можете прочитать больше здесь: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp

Ответ 3

Вы на правильном пути

var testVar = '%3:';

var num = 3;

var patt = '%' + num + ':';

var result = patt.match(testVar);

alert(result);

Пример: http://jsfiddle.net/jasongennaro/ygfQ8/2/

Вы не должны использовать number. Хотя это не зарезервированное слово, это одно из предопределенных имен классов/объектов.

И ваш шаблон хорош, не превращая его в литерал регулярного выражения.

Ответ 4

В наши дни многим людям нравится синтаксис ES6 с babel. Если это ваш случай, тогда существует опция без конкатенации строк:

const matcher = new RegExp(`%${num_to_match}:`, "g");