2013-03-18 83 views
0
不工作

我的正则表达式是未来简单的正则表达式的Javascript

/^(\.\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一切运作良好

+1

等效表述没有或有'^'和'(\ d * \ \ d *?)$',后者是'真'(\ \ W *)。 – 2013-03-18 12:13:41

回答

1

试试这个

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

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

+0

谢谢,它运作良好 – Ilya 2013-03-18 12:15:34

2

应该

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

你需要用这两个中的另一个(..)的OR条件。

其他明智它被解释为^(\.\w*)(\d*\.?\d*)$代替^和((\.\w*)(\d*\.?\d*))和$

演示:Fiddle