2012-01-12 63 views
0

我在Regexr測試這和它的作品,但它似乎並沒有在AS3的工作:爲什麼我的正則表達式對於空字符串不起作用?

var emptyResult:* = new RegExp("^\s*$", "gi").exec(myField.text); 

var emptyResult:* = /^\s*$/gi.exec(myField.text); 

不管我是否在現場或不文本,空白或非空白,emptyResult始終爲空。我嘗試過,沒有g和i標籤,但似乎沒有任何工作。

任何人都知道這可能是爲什麼?

回答

3
  1. 你不需要'我'標誌 - 它代表'忽略大小寫',它只適用於拉丁字母的字母 - 你沒有使用它們。

  2. 在第一個示例中,您需要轉義反斜槓,否則將其視爲要轉義下面的字母's'。

  3. 你也不需要'g'標誌,因爲你試圖測試整個字符串(在你的情況下,行和字符串是相同的東西,\s將首先遇到該行的結尾,可以在$之前)。當使用你的第二個正則表達式,但是,'i'標誌被移除時,它給了我期望的結果,即如果被測試字符串的整個文本由空格,製表符,回車符或其他換行,然後返回整個字符串。

例如:

trace(/^\s*$/.exec(" \t\r\n")[0].length); // 4 
+0

感謝。事實證明,這是你的觀點#2和我正在做錯誤檢查的事實('emptyResult == null'而不是'emptyResult!= null')的組合。哎呀! – jowie 2012-01-13 10:16:20

相關問題