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

Javascript 比较具有不同空格和可能为空字符的字符串,javascript,encoding,removing-whitespace,Javascript,Encoding,Removing Whitespace,我目前正在为我正在做的一个项目制作一个维基百科刮板。问题是,我的代码在尝试比较字符串时有时会产生错误。如果我有看起来相同的字符串,它们有时仍然注册为不同的字符串。例如: var elementText = $("selector").text(); console.log(elementText); // "abc def" console.log(elementText === "abc def"); // false 维基百科似乎使用了我的代码检测到的一些奇怪的字符,我不喜欢这些字符。我试

我目前正在为我正在做的一个项目制作一个维基百科刮板。问题是,我的代码在尝试比较字符串时有时会产生错误。如果我有看起来相同的字符串,它们有时仍然注册为不同的字符串。例如:

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',)
,两者似乎都不起作用。我如何才能完全去掉这些字符,使直观上相等的字符串实际上以相等的方式匹配


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

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

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

你知道你可以吗?@Liam我不知道。我一定会调查的。也就是说,如果我将来遇到这个问题,我仍然想知道如何解决。维基百科使用的是不间断空格和细空格,几乎没有任何空字符。即使这样,
\s
也应该与这些匹配。请告诉我们你到底用那个正则表达式做了什么。你绝对不应该使用
enocde/decodeURI…
你应该在维基百科网站上阅读。你应该只使用
replace(/\u00a0/g',)
,不需要使用任何URI编码。