undefined

使用 decodeURIComponent 的时候报错 Uncaught URIError: URI malformed

url加密传参有时候,如果url参数本身包含了%符号,在执行decodeURIComponent时报会导致Uncaught URIError: URI malformed的错误.

网上(百度)一搜一大堆,无非就是替换掉%符号:

urlStr.replace(/%/g, '%25');

但是这须在加密之前进行替换,如果想要加密之后的参数执行decodeURIComponent不报错,则需要使用正则进行替换:

urlStr.replace(/%(?!\d|[ABCDEF]+)/g, '%25');