我的正则表达式是下一个
/^(\.\w*)|(\d*\.?\d*)$/
它适用于浮点数(123.23
,12.
,.56
)以及从点开始的任何单词。
我很困惑
/^(\.\w*)|(\d*\.?\d*)$/.test("qweasdzxc"); // return true
但没有OR:
/^(\.\w*)$/.test("qweasdzxc"); // return false
/^(\d*\.?\d*)$/.test("qweasdzxc"); // return false
在RegexPal上一切正常
答案 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)。