好的,所以我目前正在使用JS的escape()和一些字符串替換來模仿PHP urlencode()函數的簡單方式。我純粹看着鍵盤字符,所以沒有特殊的ASCII或Unicode字符。我遇到的問題是特定字符*,+和/在RegExp中具有特殊含義,並且由於JavaScript String Object方法使用RegExp參數,因此我無法完全複製PHP的urlencode()。因此,如何設法使用JS執行字符串內的這些字符替換?Javascript替換字符中的字符*,+和//
背景資料:用urlencode)
逃逸()的差異(:
@
:未轉換,應該是%40
&
:考慮一個HTML實體,從而轉義爲%26安培%3B而非%26
*
:未轉換,應該是%2A
+
:未轉換,應該%2B
/
:未轉換,應該是%2F
<
:考慮一個HTML實體,從而轉義爲%26lt%3B而非%3C
>
:考慮一個HTML實體,從而轉義爲%26gt%3B而非%3E
HTML實體轉換爲簡單如
str.replace(/&/g, '%26').replace(/</g, '%3C').replace(/>/g, '%3E');
和@
可以被替換,因爲它不是一個保留的RegExp字符。
*
代表{0}
條件
+
代表{1}
條件
/
是基本的正則表達式標記字符
謝謝您的時間。
爲什麼不使用JavaScript內置的encodeURIComponent()函數? http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp – 2010-09-03 02:18:56