使用字符串变量动态创建正则表达式
假设我想使以下内容可重用:
function replace_foo(target, replacement) {
return target.replace("string_to_replace",replacement);
}
我可能会做这样的事情:
function replace_foo(target, string_to_replace, replacement) {
return target.replace(string_to_replace,replacement);
}
使用字符串文本,这很容易。但是,如果我想使用正则表达式变得更加棘手怎么办?例如,假设我想替换除 .本能地,我会尝试通过做这样的事情来扩展上述内容:string_to_replace
function replace_foo(target, string_to_replace, replacement) {
return target.replace(/^string_to_replace/,replacement);
}
这似乎不起作用。我的猜测是,它被认为是一个字符串文本,而不是一个表示字符串的变量。是否可以使用字符串变量动态创建 JavaScript 正则表达式?如果可能的话,这样的东西会很棒:string_to_replace
function replace_foo(target, string_to_replace, replacement) {
var regex = "/^" + string_to_replace + "/";
return target.replace(regex,replacement);
}