使用带有替换的模板文字

时间:2019-03-13 19:29:58

标签: javascript

如何用模板文字替换某些内容?我正在尝试传入要替换的字符-在这种情况下,我试图用空字符串替换特定字符。

function replace(romanNumeral, replace) {
  var newStr = romanNumeral.replace(/${replace}/g, '')
  console.log(newStr);
}

2 个答案:

答案 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)