2011-06-22 29 views
2

我有這樣的代碼:如何使用JavaScript將字符串中的'更改爲%27?

var data = "I'm trying to send this with AJAX properly."; 
data = encodeURIComponent(data); 
data.replace("'", "%27"); 
data.replace(/'/, "%27"); 
alert(data); //Still not changed here... 

我想送與AJAX到數據庫。但是'導致它根本不發送。 encodeURIComponent不會將'更改爲其代碼%27,data.replace也不會更改。

我在這裏做錯了什麼?

回答

6

您不會重新分配data

data = data.replace("'", "%27"); 

replace()返回修改後的字符串,它不直接修改調用對象的字符串。

+0

天哪,這是我的愚蠢......非常感謝! –

+0

+1,用於快速,準確的響應。 :) – JAAulde

+1

請注意,此方法將只替換第一次出現 –

0

String.prototype.replace返回修改過的字符串,它不會修改原來的。您必須分配返回值:

var newString = data.replace("'", '%27'); 
4

使用escape方法,它將對URL進行URL編碼。 請注意,當使用字符串作爲匹配項時,string.replace方法僅替換第一次出現的字符串。要替換所有實例,您必須使用正則表達式。

var foo = escape("'"); 
+0

+1不重新發明輪子。讓我們也排除必須考慮需要在URI中編碼的所有字符。 –

+0

+1並與約翰同意。使用'replace()'是一個短視的解決方案。無可否認,我的答案是專注於解決用戶特定的代碼問題。 –

相關問題