私が現在使用しているコードは、すべての特殊文字に対して個別に「置換」を記述する必要があるため、醜いです。
var str = ":''>";
str.replace("'","\\'").replace(">","\\>");
< > * ( ) と ?の先頭にバックスラッシュを追加したいと思います。正規表現を介して。
私が現在使用しているコードは、すべての特殊文字に対して個別に「置換」を記述する必要があるため、醜いです。
var str = ":''>";
str.replace("'","\\'").replace(">","\\>");
< > * ( ) と ?の先頭にバックスラッシュを追加したいと思います。正規表現を介して。
文字を文字セットと一致させる正規表現を使用して、次のことを試すことができます。
str = str.replace(/([<>*()?])/g, "\\$1");
デモ: http://jsfiddle.net/8ar3Z/
内の任意の文字 (指定した文字) と一致し、[ ]
それらを周囲でキャプチャして()
(置換されたテキスト部分のように参照できるように$1
)、先頭に\\
.
アップデート:
@TJCrowder さんからの提案として、()
でキャプチャする必要はありません。$1
$&
str = str.replace(/[<>*()?]/g, "\\$&");
デモ: http://jsfiddle.net/8ar3Z/1/
参考文献:
$1
$&
使用: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter