encodeURIComponent会转义除以下字符以外的所有字符:- _ . ! ~ * ' ( )
但是也可以扩展功能编码上面的特殊字符。
我知道我可以这样做:
encodeURIComponent(str).replace(/\(/g, "%28").replace(/\)/g, "%29");
但是我想要这样的功能,而不使用encodeURIComponent上的附加功能
encodeURIComponent(str);
答案 0 :(得分:5)
不要说我没有警告你;这里有龙:
(function() {
var _fn = encodeURIComponent;
window.encodeURIComponent = function(str) {
return _fn(str).replace(/\(/g, "%28").replace(/\)/g, "%29");
};
}());
答案 1 :(得分:0)
您可以编写自定义编码功能
customEncodeURI(str : string){
var iChars = ':",_{}/\\'; // provide all the set of chars that you want
var encodedStr = ''
for (var i = 0; i < str.length; i++) {
if (iChars.indexOf(str.charAt(i)) != -1) {
var hex = (str.charCodeAt(i)).toString(16);
encodedStr += '%' + hex;
}else {
encodedStr += str[i];
}
}
console.log("Final encoded string is "+encodedStr);
console.log("Final decoded string is "+decodeURIComponent(encodedStr));
return encodedStr;
}