は、私は、次の再利用可能にしたかったと言う:文字列変数を使用してJavaScript正規表現を作成することはできますか?
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正規表現を作成することは可能ですか? flags
がg
またはi
あるnew RegExp(string, flags)
があります
function replace_foo(target, string_to_replace, replacement) {
var regex = "/^" + string_to_replace + "/";
return target.replace(regex,replacement);
}
上で最速のことと省略しているようです'/'正規表現の区切り文字もこの形式を使用します。 – cdhowie
ありがとうございます。そしてcdhowie:素晴らしいコメント。私はまず他の方法を試してみた。 – buley