2009-12-18 86 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