我有一个函数,如果取消选中复选框,则从html字符串中删除过滤器;如果选中,则添加它。我在使用字符串替换功能从我想要删除的字符串前面删除%20或+符号时遇到问题。
此代码有效:
var addFilter = change.value;
if (change.checked == true) { //add filter }
else {
var removeFilter1 = addFilter;
var removeFilter2 = addFilter;
if(currFilter != '') {
var url = currFilter.replace(removeFilter1, "");
var url = url.replace(removeFilter2, "");
window.open(url, "_self");
}
}
...基本上我尝试设置removeFilter1 =“%20”+ addFilter;和removeFilter2 =“+”+ addFilter;摆脱网址中的额外空格字符,但是当我做出改变时它没有做任何事情。我很确定它与替换功能有关,不能使用特殊字符,但不知道如何修复。这不是一个很大的交易,因为它仍然适用于包括额外的空间,但它困扰我哈哈。
答案 0 :(得分:1)
%20基本上是空格,它在url中显示为%20表示空格,因为网址没有空格..所以你应该尝试从字符串中删除不是%20的空格...例如< / p>
var url = currFilter.replace(" ", "");
答案 1 :(得分:0)
您是否尝试过decodeURI并替换空格?
迎接