2011-05-20 278 views
5

我已經做了一些搜索,但是我找不到在JavaScript的正則表達式中包含在\ s中的空白字符的確定列表。JavaScript正則表達式空白字符

我知道我可以依靠的空間,換行,回車,標籤爲空白,但我認爲,因爲JavaScript是傳統上只爲瀏覽器,也許URL編碼的空格之類的東西 %20會也支持。

JavaScript的正則表達式編譯器究竟考慮了什麼?如果瀏覽器之間存在差異,我只關心webkit瀏覽器,但很高興知道任何差異。另外,node.js呢?

回答

2

HTML =的Javascript。 Javascript是完全字面的,%20是%20,而 是一串字符& n b s p和;。對於字符類,我認爲幾乎所有在Perl中的RegEx都適用於JS(你不能做命名組等)。

http://www.regular-expressions.info/javascript.html是我使用的參考。

+0

權,但經常的JavaScript運行在瀏覽器中,所以我認爲可能有一些特殊情況。 – tjameson 2011-05-20 15:21:51

+0

我已將您標記爲正確,因爲您清除了根本問題。謝謝! – tjameson 2011-05-20 15:25:09

6

一個簡單的測試:

for(var i = 0; i < 1000; i++) { 
    if(String.fromCharCode(i).replace(/\s+/, "") == "") console.log(i); 
} 

炭碼(鉻):

9 
10 
11 
12 
13 
32 
160 
5

對於Mozilla其;

[ \f\n\r\t\v\u00A0\u2028\u2029] 

Ref

對於IE(JScript的)其

[ \f\n\r\t\v] 

Ref

+0

你如何使它匹配Unicode空格? – tchrist 2011-05-20 16:14:48

+0

FF看起來就像它一樣,對於IE而不是\ s使用類[\ s00w0 \ u2028 \ u2029] – 2011-05-20 16:16:53