encodeURIComponent() | encodeURIComponent 轉換
encodeURIComponent转义除了如下所示外的所有字符:不转义的字符:A-Za-z0-9-_.!~*()encodeURIComponent()和encodeURI有以下几个不同点:varset1=";,/?:@&=+$";varset2="-_.!~*()";varset3="#";varset4="ABCabc123";console.log(encodeURI(set1));console.log(encodeURI(set2));console.log(encodeURI(set3));console.log(encodeURI(set4));console.log(encodeURIComponent(set1));console.log(encodeURIComponent(set2));console.log(encodeURIComponent(set3));console.log(encodeURIComponent(set4));注意,如果试图编码一个非...
encodeURIComponent 转义除了如下所示外的所有字符:
不转义的字符: A-Z a-z 0-9 - _ . ! ~ * ( )encodeURIComponent() 和 encodeURI 有以下几个不同点:
var set1 = ";,/?:@&=+$"; var set2 = "-_.!~*()"; var set3 = "#"; var set4 = "ABC abc 123"; console.log(encodeURI(set1)); console.log(encodeURI(set2)); console.log(encodeURI(set3)); console.log(encodeURI(set4)); console.log(encodeURIComponent(set1)); console.log(encodeURIComponent(set2)); console.log(encodeURIComponent(set3)); console.log(encodeURIComponent(set4));注意,如果试图编码一个非高 - 低位完整的代理字符,将会抛出一个 URIError[1] 错误,例如:
alert(encodeURIComponent(uD800uDFFF)); alert(encodeURIComponent(uD800)); alert(encodeURIComponent(uDFFF));为了避免服务器收到不可预知的请求,对任何用户输入的作为 URI 部分的内容你都需要用 encodeURIComponent 进行转义。比如,一个用户可能会输入"Thyme &time=again"作为comment变量的一部分。如果不使用 encodeURIComponent 对此内容进行转义,服务器得到的将是comment=Thyme%20&time=again。请注意,"&"符号和"="符号产生了一个新的键值对,所以服务器得到两个键值对(一个键值对是comment=Thyme,另一个则是time=again),而不是一个键值对。
...