Как сопоставить переменную в регулярном выражении?

я имею

var string1 = 'asdgghjajakhakhdsadsafdgawerwweadf';
var string2 = 'a';
string1.match("\/"+string2+"\/g").length;

Так с этим я хочу найти появление, но он не работает. Как я могу поставить переменную правильно?

Ответы

Ответ 1

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

var string = 'asdgghjjkhkh';
var string2 = 'a';
var regex = new RegExp( string2, 'g' );
string.match(regex);

Если вам не нужен глобальный модификатор, вы можете просто передать string2, а .match() создаст вам регулярное выражение.

string.match( string2 );

Ответ 2

Вот еще один example- // подтверждаем, содержит ли строка цель в конце (обе являются переменными в функции ниже, например, подтверждаем, содержит ли str "Abstraction" цель "action" в конце).

function confirmEnding(string, target) {
    let regex = new RegExp(target);
    return regex.test(string);
};