2009-06-22 51 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