我在javascript中有两个相同的字符串,其中有些空格。当我使用str.charCodeAt(n)
打印ascii值时,它显示的值为32和160。我谷歌了一下这些值,发现它们是代表断开和不间断空格。那么有人能解释一下这种行为吗?
我在javascript中有两个相同的字符串,其中有些空格。当我使用str.charCodeAt(n)
打印ascii值时,它显示的值为32和160。我谷歌了一下这些值,发现它们是代表断开和不间断空格。那么有人能解释一下这种行为吗?
160
实际上超出了常规(7位)ASCII的范围。160
作为不间断空格(或NBSP
)字符的解释来自Latin1(ISO8859-1)字符集。(在扩展ASCII中,NBSP
字符的代码是255
!)textarea
时,你可以使用Alt
、2
、5
、5
来强制在类似于项目符号(Alt
、7
或8
或9
)之前添加前导空格。否则,浏览器将不会显示前导空格或尾随空格。然而,一些Web应用程序实现了trim()
或类似的技术,以便删除或不显示前导、尾随、重复或\n
空格字符。 - Abel Wenning非断行空格是指不会在新的一行中换行的空格。 两个由非断行空格分隔的单词将粘在一起,不会被分开到新的一行。
另一方面,断行空格会导致分行。
charCodeAt
方法会返回一个 UTF-16 编码单元,其中一个或两个编码单元可以表示一个 Unicode 码点。ASCII 字符集中没有不间断空格字符(但如果你使用 JavaScript、Java、.NET、HTML、XML 等技术,那么你可能并不使用 ASCII)。 - Tom Blodget