关于Javascript中RegExp的一个问题

时间:2009-06-22 06:34:09

标签: javascript

我写了一个正则表达式 ^([+/-]?([0-9] +(。)?)|([0-9] *。[0-9] +))$
我通过两种方式创建它

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

1 个答案:

答案 0 :(得分:5)

我相信你需要逃避字符串中的反斜杠(在第一个版本中)。

试试这个:

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