4

特殊文字 '(アポストロペ) を \'(バック スラッシュ アポストロペ) に置き換える必要がありますが、これは、文字列の開始文字と終了文字を除いて、文字列の間のみにする必要があります。
例:msg ='My Son's Daughter';
文字列には複数のアポストロフィーが含まれる場合があります。文字列の開始文字と終了文字ではないアポスロープを置き換えたいだけです。

アイデアがあれば教えてください。

4

3 に答える 3

2

試す

msg = msg.replace(/(.)'(.)/g, "$1\\'$2");

.先頭と末尾には、 の前後に任意の文字が必要です'

は、その中で定義された文字 ( ) を変数 (および)()にキャッチします。.$1$2

$1とは$2、両方のキャッチされた文字を表し()ます。

リテラルをエスケープ/\\表す\

開始時、これを正規表現 (regex) として定義する/直前g

g、すべての出現を示す修飾子 (グローバル) です。

正規表現は、文字列であるかのように引用符で囲んではなりません。

于 2013-06-17T11:00:27.450 に答える
0

置換機能は、あなたが求めているものです。これでうまくいくはずです:

msg = msg.replace(/'/g, "\\'");
于 2013-06-17T10:55:56.580 に答える