比较具有不同空格和可能为空字符的字符串

时间:2016-09-20 13:37:09

标签: javascript encoding removing-whitespace

我正在为我正在做的项目制作一个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, ''),似乎都不起作用。我怎样才能完全摆脱这些字符,以便直觉上相等的字符串实际上匹配相同?

注意:我还使用==测试了我的代码,它确实解决了这个问题;但是,为了避免将来的错误,我想避免使用此修复程序。

1 个答案:

答案 0 :(得分:0)

删除replace第一个参数周围的引号。这是因为您使用正则表达式(/g)作为替换函数,不需要用引号括起来。

function replaceBadSpaces(string) {
    return decodeURIComponent(encodeURIComponent(string).replace(/%C2%A0/g, "%20"));
}