如何用模板文字替换某些内容?我正在尝试传入要替换的字符-在这种情况下,我试图用空字符串替换特定字符。
function replace(romanNumeral, replace) {
var newStr = romanNumeral.replace(/${replace}/g, '')
console.log(newStr);
}
答案 0 :(得分:2)
简短的回答是:
var world = "World";
var myString = "Hello World!";
myString.replace(new RegExp(`Hello ${world}`), "Hello Earth");
// Outputs "Hello Earth!"
如果您要搜索的字符串的内容来自用户输入,则您可能需要先对其进行转义,因此用户无法插入特殊的RegExp字符并以您意想不到的方式操作正则表达式。 / p>
// Escape special RegExp characters
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
var world = "World";
world = escapeRegExp(world);
var myString = "Hello World!";
myString.replace(new RegExp(`Hello ${world}`), "Hello Earth");
// Outputs "Hello Earth!"
答案 1 :(得分:1)
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
function replace(romanNumeral, replace) {
var newStr = romanNumeral.replace(new RegExp(escapeRegExp(replace), 'g'), '')
console.log(newStr);
}
replace("15551", 5)