2012-07-04 76 views
0

我在JS中遇到了這個問題,用撇號(「'」)。我使用encodeURIComponent()來編碼,然後用(%27)替換(')如下。JS - 撇號 - 不會被替換

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

但是,如果撇號與括號,撇號不會被取代。

例如:。( 「) ' 」) (「')」) ( 「(」「)

即使撇號後面是它不會被替換數字號碼

是有沒有提前爲這個解決方案?

感謝。

Nilushi

回答

1

你需要指定/g全球改性劑:

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

實施例:

var str = "(''')"; 
var request = encodeURIComponent(str).replace(/'/g, "%27"); 
console.log(request); // (%27%27%27) 
3

String.replace方法接受字符串或正則表達式作爲它的第一個參數。當一個字符串作爲第一個參數傳遞,只有第一場比賽被替換:

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

您應該使用正則表達式,而不是隨着g標誌;它取代所有的匹配:

"'''''".replace(/'/g, "%27"); // "%27%27%27%27%27" 
+0

+1很好地解釋它爲OP – Blaster