好的,所以我目前正在使用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