我正在为我正在做的项目制作一个wikipedia刮刀。问题是我的代码在尝试比较字符串时有时会产生错误。如果我的字符串看起来相同,它们有时仍会注册为不同的字符串。例如:
var elementText = $("selector").text();
console.log(elementText); // "abc def"
console.log(elementText === "abc def"); // false
维基百科似乎使用了我的代码检测到并且不喜欢的一些奇怪的字符。我试过了:
function replaceBadSpaces(string) {
return decodeURIComponent(encodeURIComponent(string).replace("/%C2%A0/g", "%20"));
}
并使用elementText.replace(/\s+/g, '')
,似乎都不起作用。我怎样才能完全摆脱这些字符,以便直觉上相等的字符串实际上匹配相同?
注意:我还使用==
测试了我的代码,它确实解决了这个问题;但是,为了避免将来的错误,我想避免使用此修复程序。
答案 0 :(得分:0)
删除replace
第一个参数周围的引号。这是因为您使用正则表达式(/g
)作为替换函数,不需要用引号括起来。
function replaceBadSpaces(string) {
return decodeURIComponent(encodeURIComponent(string).replace(/%C2%A0/g, "%20"));
}