2009-06-22 89 views
2

我寫了一個正則表達式
^([+/-]?([0-9] +(。)?)|([0-9] *。[0-9] +))$
我通過兩種方式
關於RegExp的一個問題關於Javascript

var _regex = "^([+/-]?([0-9]+(\.)?)|([0-9]*\.[0-9]+))$"; 
var _regexFloat = new RegExp(_regex); 


var _regexFloat = /^([+/-]?([0-9]+(\.)?)|([0-9]*\.[0-9]+))$/ ; 

的測試數據是 「1A」 和 「A1」 創建它。
在第二種方式,它工作正常。
但在第一種方式中,它返回true。

任何人都可以建議我,如果我有什麼問題。

非常感謝。

環境:

的Windows Server 2003
IE 6

+0

你好,這是什麼正則表達式?是否知道一個字符串是否包含浮點數? – 2009-06-22 06:37:27

回答

5

我相信你需要躲避字符串中的反斜槓(在第一個版本)。

試試這個:

var _regex = "^([+/-]?([0-9]+(\\.)?)|([0-9]*\\.[0-9]+))$"; 
var _regexFloat = new RegExp(_regex); 
+2

當然,這正是第二種語法存在的原因。轉義使其不易讀。 – 2009-06-22 06:40:54