0

JS のアポストロフィ ("'") でこの問題が発生しています。次のように、encodeURIComponent() を使用してこれをエンコードし、(') を (%27) に置き換えます。

var request = encodeURIComponent(requestString).replace("'", "%27");

ただし、アポストロフィが括弧付きの場合、アポストロフィは置き換えられません。

元: (")'") ("')") ("('")

アポストロフィの後に数値が続く場合でも、置き換えられません。

これに対する解決策はありますか?

前もって感謝します。

ニルシ

4

2 に答える 2

3

String.replaceメソッドは、最初のパラメーターとして文字列または正規表現を受け入れます。文字列が最初のパラメーターとして渡されると、最初に一致したものだけが置き換えられます。

"'''''".replace("'", "%27"); // "%27''''"

g代わりに、フラグとともに正規表現を使用する必要があります。これはすべての一致を置き換えます:

"'''''".replace(/'/g, "%27"); // "%27%27%27%27%27"
于 2012-07-04T07:17:59.323 に答える
1

/gグローバル修飾子を指定する必要があります:

var request = encodeURIComponent(requestString).replace(/'/g, "%27");

例:

var str = "(''')";
var request = encodeURIComponent(str).replace(/'/g, "%27");
console.log(request); // (%27%27%27)
于 2012-07-04T05:58:52.117 に答える