Javascript正则表达式匹配空字符串,非数字字符或数字超过1位数?

问题描述:

我试图匹配空字符串,非数字字符或超过1位数的数字。Javascript正则表达式匹配空字符串,非数字字符或数字超过1位数?

例子:

"", "a", "abc", "10" 

我想:

/^([^1-9]*)|(\d{2,})$/ 

,但它不工作。

+0

[这对我的作品(http://regexr.com?2vr8j)!? –

+0

@JosephSilber出于某种原因,它也匹配个位数字。 – kai

您可以使用下面的正则表达式为:

/^(\d{2,}|[^\d]+|)$/ 
+0

看到这个正则表达式的代码:http://jsfiddle.net/FYtSy/1/ – anubhava

+0

谢谢!我仍然有一些疑问: /^(\ d {2,} | [^ \ d] + |)$/works, /^([^ \ d] *)|(\ d {2,} )$ /不起作用, 但是 /^(([^ \ d] *)|(\ d {2,}))$/works?为什么? – kai

+0

您确实需要将括号中的所有或条件组合在一起,这就是为什么'/^[^ \ d] * | \ d {2,} $ /'不适用于您而是'/ ^([^ \ d] * | \ d {2,})$ /'确实。 – anubhava