JavaScript - Используйте переменную в строковом соответствии

Я нашел несколько подобных вопросов, но это не помогло мне. Таким образом, у меня есть эта проблема:

var xxx = "victoria";
var yyy = "i";
alert(xxx.match(yyy/g).length);

Я не знаю, как передать переменную в команде соответствия. Помогите.Спасибо.

76
задан Munawir 9 June 2019 в 07:10
поделиться

3 ответа

Хотя функция сопоставления не принимает строковые литералы в качестве шаблонов регулярных выражений, вы можете использовать конструктор объекта RegExp и передать его функции String.match:

var re = new RegExp(yyy, 'g');
xxx.match(re);

Любые нужные флаги (например, / g) можно указать во втором параметре.

156
ответ дан 24 November 2019 в 11:13
поделиться

Вы должны использовать объект RegExp, если ваш паттерн является строкой

var xxx = "victoria";
var yyy = "i";
var rgxp = new RegExp(yyy, "g");
alert(xxx.match(rgxp).length);

Если паттерн не является динамической строкой:

var xxx = "victoria";
var yyy = /i/g;
alert(xxx.match(yyy).length);
8
ответ дан 24 November 2019 в 11:13
поделиться
xxx.match(yyy, 'g').length
-4
ответ дан 24 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: