当我需要从中提取参数值的URL字符串中有一个类似60% - Completed的%符号时,下面的代码错误就不在URIError: malformed URI sequence?中了,例如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>我没有服务器的控制权,需要处理我的html页面的输出。
发布于 2013-12-20 17:35:43
我认为您需要将百分号URI编码为'%25‘
http://some-external-server.com/info?progress=60%25%20-%20Completed 编辑
我想你可以这样做:
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"https://stackoverflow.com/questions/20700393
复制相似问题