日期:2014-05-16  浏览次数:20363 次

正则表达式 求助
最近写了个正则表达式,发现一个很奇怪的问题,下面:
/^(0\.\d+|[1-9]\d*(\.\d+)?)$/.test("00.1") 返回false

/^(0\.\d+)|([1-9]\d*(\.\d+)?)$/.test("00.1") 返回true

/^0\.\d+|[1-9]\d*(\.\d+)?$/.test("00.1") 返回true

/^((0\.\d+)|([1-9]\d*(\.\d+)?))$/.test("00.1") 返回false
查了一下语法也没发现什么问题?有兴趣的试一下。

------解决方案--------------------
楼主原意是什么?


/^12|34$/
这个很容易理解成
124
134
其实不是这样的
应该是
^12
34$
------解决方案--------------------
好多得括号啊
第一个满足0\.\d+或者[1-9]\d*(\.\d+)?返回true 但00.1都不满足 所以false
第二个以0\.\d+开头或[1-9]\d*(\.\d+)?结尾返回true,貌似满足[1-9]\d*(\.\d+)?结尾 所以true
第三个感觉和第二个一样吧 第二个多了的括号不知会不会影响运算符的优先顺序 不很懂了
第四个和第一个貌似也一样 还是不知道多了的括号不知会不会影响运算符的优先顺序 不很懂了