Скажем, я хотел сделать следующее повторно используемое:
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);
}