我有两个字符串:

x = "hi hemant how r u"
y = "hi hemant how r u"


如果我们看到,两者看起来相同,但是

x === y gives false.


我检查两者的ascii值,这是不同的

x = "hi hemant how r u"
034 104 105 032 104 101 109 097 110 116 194 160 104 111 119 032 114 032 117 034

y = "hi hemant how r u"

034 104 105 032 104 101 109 097 110 116 032 104 111 119 032 114 032 117 034


与194 160的区别是x表示空白,而032 y表示空白。
我想写x === y时返回true的东西

https://jsfiddle.net/hemantmalpote/ekzoveew/

最佳答案

您的文本为UTF-8,194 160转换为0x00A0,这是不间断空格的Unicode代码点。这与普通的空格字符不同。有关相关的SO答案,请参见here;在NO-BREAK SPACE上,请参见here for an extended Unicode info page

您可以通过正则表达式将所有空格替换为普通空格,然后进行比较,这是一个SO答案:https://stackoverflow.com/a/1496863/2535335-在您的情况下:

x = x.replace(/\u00a0/g, " ");

09-30 19:07