Синтаксис javascript для регулярного выражения с использованием переменной как шаблона
У меня есть переменная patt с динамическим числовым значением
var patt = "%"+number+":";
Что такое синтаксис регулярного выражения для его использования в методе test()?
Я использую этот формат
var patt=/testing/g;
var found = patt.test(textinput);
ТИА
Ответы
Ответ 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");