URIError:错误的URI序列?

Sta*_*ked 5 html javascript jquery uri escaping

URIError: malformed URI sequence?当我需要提取参数值的URL字符串中有一个%符号时,下面的代码错误就出来了,60% - Completed例如http://some-external-server.com/info?progress=60%%20-%20Completed

   <SCRIPT type="text/javascript">
            function getParameterByName(name) {
                name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
                var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
                results = regex.exec(location.search);
                return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
            }
    </SCRIPT>
Run Code Online (Sandbox Code Playgroud)

我没有控制服务器,需要在我的html页面中处理输出.

Sli*_*pan 5

我认为您需要将 URI 编码为 '%25'

http://some-external-server.com/info?progress=60%25%20-%20Completed 
Run Code Online (Sandbox Code Playgroud)

[编辑]

我想你可以做这样的事情:

var str = "60%%20-%20completed";
var uri_encoded = str.replace(/%([^\d].)/, "%25$1");
console.log(str); // "60%25%20-%20completed"
var decoded = decodeURIComponent(uri_encoded);
console.log(decoded); // "60% - completed"
Run Code Online (Sandbox Code Playgroud)