url跳转地址中如果有中文汉字,通常会使用encodeURI()方法转码,以避免一些错误。
一开始想把url中的汉字截取出来再转码,之后再拼接到url中,但是发现这么操作实在太麻烦。想到字符串有replace方法可以使用正则替换匹配的字符串,这样就好办多了,可以很方便的一次性替换所有中文汉字。
代码:
let url='https://www.xxx.com/index?type=1&name=蜡笔小新&busiSource=20&businessNo=01EF52E9F12C4A86968FAAD668E5C873';
url=url.replace(/[\u4e00-\u9fa5]/g, function ($) { return encodeURI($) })
console.log(url);//https:
//www.xxx.com/index?type=1&name=%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0&busiSource=20&businessNo=01EF52E9F12C4A86968FAAD668E5C873
js匹配中文汉字的正则:/[\u4e00-\u9fa5]/ g代表替换字符串中所有出现的汉字,不带g的话代表只替换字符串中第一个出现的中文汉字
关于replace的用法参考MDN:String.prototype.replace()