【发布时间】:2021-01-30 10:51:03
【问题描述】:
我从具有某种间距的 API 获取字符串 string2。在string2 上,空格不是常规空格,我什至不知道它们是否是制表符,但如果我尝试替换它们仍然不等于间隔string1。
// This string has normal spaces charCodeAt(4) displays '32'
const string1 = 'long string with spaces'
// This string has different spaces charCodeAt(4) displays '160'
const string2 = 'long string with spaces'.replace(/\s+/g, ' ')
console.log(string1)
console.log(string2)
console.log(string1 === string2)
--- 更新
问题是我在string1 上混合了普通空格和不间断空格,因此无论我更改多少string2,它都永远不会等于string2
由于我确实可以控制string1,因此我已将其更正为具有正常空格,现在它可以工作了。
【问题讨论】:
-
这将返回真而不是假
-
This answer 可能会有所帮助。
-
这可能意味着您在任一字符串中都有一些不可见的字符(可能在非 ASCII 范围内)。我把你的代码变成了一个sn-p,它返回true。因此,请在您的问题中提供重现该问题的代码。
-
检查字符的
.charCode()。您会发现一些代码为 160 的“空格”是不间断空格 ( ) -
确实,对 string2 的检查表明它没有常规空格。如果您对其应用相同的替换,则字符串将相等。
标签: javascript