2009-12-18 45 views

回答

9

代码条中除了非破坏空格外还有空格和空格字符,\u00A0是非破坏空间的unicode点/代码/编号/别名。你可以弹出Firebug并输入。

>>> '\u00A0' 
" " 

了解这个字符的进一步信息:

http://www.fileformat.info/info/unicode/char/00a0/index.htm

编辑:我只是尝试这个代码在萤火虫,其检查来自所生成的非断裂空间的任何匹配,并将其匹配:

javascript:alert(String.fromCharCode(160).match(/\s/)) 

但是,在IE6中这样做会返回null,所以IE很可能是此更新的原因。

更新#2 - 它看起来像删除脱字符号使得它与以前的版本不一致,因为它不仅删除了前导和尾随空格,而且还删除了任何地方的空格。

r = /(\s|\u00A0)+|(\s|\u00A0)+$/g; 

s = ' wh at' 

s = s.replace(r, '') 

输出

"what" 
+0

尽管ECMAScript标准在'\ s'中包含'\ u00a0',IE似乎没有。 – Annabelle 2009-12-18 22:02:15

+0

这里是说160是非破坏空白的unicode的链接。 http://wikisource.org/wiki/Transwiki:Unicode_characters_160-191 – Roger 2010-01-06 19:14:13

+0

@Roger - 我的第一个链接有这些信息。 – 2010-01-06 19:52:13

0

看起来像一个Unicode空格字符这是不等效或等于\ u0020。

1

我猜测它和测试用例中的String.fromCharCode(160)一样 - 一个非破坏性的空间。这是确保修剪还可以修剪非空白字符,通常可能不匹配\s字符类。

1

它是Unicode中不分隔空格字符的代码点。该提交似乎解决了Internet Explorer的JavaScript实现中的一个错误,其中\s正则表达式字符类不包括\u00a0