我有一个函数,如果复选框未选中,则从 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;摆脱网址中多余的空格字符,但当我进行更改时它没有任何作用。我很确定它与不使用特殊字符的替换功能有关,但不确定如何修复。这没什么大不了的,因为它仍然可以使用包含的额外空间,但它让我很困扰,哈哈。
最佳答案
%20 基本上是空格,它在 url 中显示为 %20 表示空格,因为 url 不能有空格..所以你应该尝试从字符串中删除空格而不是 %20...例如
var url = currFilter.replace(" ", "");
关于javascript字符串替换特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37504086/