使用 decodeURIComponent 的时候报错 Uncaught URIError: URI malformed
url加密传参有时候,如果url参数本身包含了
%
符号,在执行decodeURIComponent
时报会导致Uncaught URIError: URI malformed的错误.
网上(百度)
一搜一大堆,无非就是替换掉%
符号:
urlStr.replace(/%/g, '%25');
但是这须在加密之前进行替换,如果想要加密之后的参数执行decodeURIComponent
不报错,则需要使用正则进行替换:
urlStr.replace(/%(?!\d|[ABCDEF]+)/g, '%25');