简单的正则表达式不适用于Javascript

时间:2013-03-18 12:08:19

标签: javascript regex

我的正则表达式是下一个

/^(\.\w*)|(\d*\.?\d*)$/

它适用于浮点数(123.2312..56)以及从点开始的任何单词。
我很困惑 /^(\.\w*)|(\d*\.?\d*)$/.test("qweasdzxc"); // return true
但没有OR:

/^(\.\w*)$/.test("qweasdzxc"); // return false   
/^(\d*\.?\d*)$/.test("qweasdzxc"); // return false

RegexPal上一切正常

2 个答案:

答案 0 :(得分:2)

应该是

/^((\.\w*)|(\d*\.?\d*))$/

您需要将OR条件包含在另一个(..)中。

其他方面,它被解释为^(\.\w*)(\d*\.?\d*)$而不是^和((\.\w*)(\d*\.?\d*))和$

演示:Fiddle

答案 1 :(得分:1)

试试这个

/^((\.\w*)|(\d*\.?\d*))$/.test("qweasdzxc"); // false
/^((\.\w*)|(\d*\.?\d*))$/.test(".5"); // true

您必须封装正则表达式条件(A | B)。