JS заменяет все вхождения строки с помощью переменной
Я знаю, что str.replace(/x/g, "y") заменяет все x в строке, но я хочу сделать это
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
Как я могу использовать переменную в первом аргументе?
Ответ 1
Конструктор RegExp принимает строку и создает из нее регулярное выражение.
function name(str,replaceWhat,replaceTo){
var re = new RegExp(replaceWhat, 'g');
str.replace(re,replaceTo);
}
Если replaceWhat может содержать символы, которые являются специальными в регулярных выражениях, вы можете сделать:
function name(str,replaceWhat,replaceTo){
replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp(replaceWhat, 'g');
str.replace(re,replaceTo);
}