native encodeURIComponent
不支持编码感叹号-我需要在url的查询参数中正确编码的!
。
node.js querystring.stringify()
也不是..
是使用像https://github.com/kvz/phpjs/blob/master/functions/url/urlencode.js#L30这样的自定义函数的唯一方法?
最佳答案
您可以重新定义 native 功能以添加该功能。
这是扩展encodeURIComponent
来处理感叹号的示例。
// adds '!' to encodeURIComponent
~function () {
var orig = window.encodeURIComponent;
window.encodeURIComponent = function (str) {
// calls the original function, and adds your
// functionality to it
return orig.call(window, str).replace(/!/g, '%21');
};
}();
encodeURIComponent('!'); // %21
如果您想缩短代码,也可以添加一个新功能。
不过,这取决于您。
// separate function to add '!' to encodeURIComponent
// shorter then re-defining, but you have to call a different function
function encodeURIfix(str) {
return encodeURIComponent(str).replace(/!/g, '%21');
}
encodeURIfix('!'); // %21
有关更多示例,请参见Mozilla's dev site。
关于javascript - 的javascript-带感叹号的encodeUriComponent?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18835737/