2

encodeURIComponent 转义除以下字符之外的所有字符:- _ . ! ~ * ' ( )

但是是否可以扩展对上述特殊字符进行编码的功能。

我知道我可以做这样的事情:

encodeURIComponent(str).replace(/\(/g, "%28").replace(/\)/g, "%29");

但我想要这样的功能,而不在 encodeURIComponent 上使用其他功能

encodeURIComponent(str);
4

2 回答 2

5
  1. 您应该创建自己的函数。
  2. 你应该创建自己的函数,真的。
  3. 如果您真的知道自己在做什么,请转到第 1 步。

不要说我没有警告过你;这里有龙:

(function() {
    var _fn = encodeURIComponent;

    window.encodeURIComponent = function(str) {
        return _fn(str).replace(/\(/g, "%28").replace(/\)/g, "%29");
    };
}());
于 2014-06-26T10:02:06.540 回答
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;
}
于 2019-12-17T09:28:30.520 回答