最佳答案
假设我想让以下内容可重复使用:
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);
}
这个好像不管用。我的猜测是,它认为 string_to_replace
是一个字符串文字,而不是一个表示字符串的变量。是否可以使用字符串变量动态创建 JavaScript 正则表达式?如果可能的话,这样的事情会很棒:
function replace_foo(target, string_to_replace, replacement) {
var regex = "/^" + string_to_replace + "/";
return target.replace(regex,replacement);
}