JavaScript中PHP的urlencode()?
我正在寻找类似于PHP中JavaScript中的JavaScript中PHP的urlencode()?,php,javascript,url,urlencode,Php,Javascript,Url,Urlencode,我正在寻找类似于PHP中JavaScript中的urlencode()的函数。允许使用jQuery库 基本上,我需要对字符串进行编码,然后使用JavaScript将用户重定向到另一个页面。encodeURIComponent() 如果您正在搜索与PHP等效的JS函数,请查看phpjs.org: 这里您可以使用encodeURIComponent()(经过一些修改)。没有与urlencode()完全匹配的函数,但有一个函数相当于rawurlencode():encodeURIComponent(
urlencode()
的函数。允许使用jQuery库
基本上,我需要对字符串进行编码,然后使用JavaScript将用户重定向到另一个页面。encodeURIComponent()
如果您正在搜索与PHP等效的JS函数,请查看phpjs.org:
这里您可以使用
encodeURIComponent()
(经过一些修改)。没有与urlencode()
完全匹配的函数,但有一个函数相当于rawurlencode()
:encodeURIComponent()
用法:var encoded=encodeURIComponent(str)代码>
您可以在此处找到参考资料:
尝试从URL编码。
我已经在我的几个案例中对它进行了测试,并且成功了。来自:
返回一个字符串,其中除-\之外的所有非字母数字字符均为该字符串。
已替换为百分比(%)符号,后跟两个十六进制数字
和编码为加号(+)的空格。它的编码方式与
WWW表单中发布的数据进行编码,编码方式与中相同
应用程序/x-www-form-urlencoded媒体类型。这与»不同
RFC 3986编码(参见rawurlencode()),由于历史原因,
空格编码为加号(+)
发件人::
encodeURIComponent()转义除以下字符以外的所有字符:
没有逃逸:A-Z A-Z 0-9-u.!~*'()
该页面底部附近提供了一个片段,如下所示:
我正在稍微调整提供的javascript代码片段,以包含更多的字符
我的代码:
function urlEncodeLikePHP(str) {
return encodeURIComponent(str).replace(/[.!~*'()]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
用法:
urlEncodeLikePHP("._!_~_*_'_(_)-\\-&-|-/");
// effectively: "._!_~_*_'_(_)-\-&-|-/"
编码输出:
%2e_%21_%7e_%2a_%27_%28_%29-%5C-%26-%7C
我的代码是相当于PHP的urlencode(基于PHP的源代码)的JS函数
函数urlencode(str){
让newStr='';
const len=str.length;
for(设i=0;i57)||
(代码>90&&code<97&&code!==95)||
(代码>122)){
newStr+='%'+code.toString(16);
}
//字母数字字符
否则{
newStr+=c;
}
}
返回新闻TR;
}
这是不一样的。一个例子是encodeURIComponent()
不编码括号。
%2e_%21_%7e_%2a_%27_%28_%29-%5C-%26-%7C
function urlencode(str) {
let newStr = '';
const len = str.length;
for (let i = 0; i < len; i++) {
let c = str.charAt(i);
let code = str.charCodeAt(i);
// Spaces
if (c === ' ') {
newStr += '+';
}
// Non-alphanumeric characters except "-", "_", and "."
else if ((code < 48 && code !== 45 && code !== 46) ||
(code < 65 && code > 57) ||
(code > 90 && code < 97 && code !== 95) ||
(code > 122)) {
newStr += '%' + code.toString(16);
}
// Alphanumeric characters
else {
newStr += c;
}
}
return newStr;
}