2016-11-02 31 views
1

昨天我在这里发布一个问题Regular Expression allow null or 1 to 9 digit这工作正常后,我在我的数量字段中看到没有采取10,100,1002等价值。因为这些值也存在0(零)位。所以请帮助我。正则表达式允许零,只要它不是第一个数字

+0

尝试'^ [^ 0] \ d * $'和'^ [1-9] [0-9] * $' – Tushar

+0

@WiktorStribiżew我在原始问题中给出了Tushar的正则表达式。我指示他打开,因为他改变会使所有3个原始答案失效,这并不好。 –

+0

@TimBiegeleisen:OP写道*如果我正在使用您的表达式,我会遇到另一个问题。* - 为什么要打开一个新问题?明确之后,在原始问题中提供工作答案。现在,事实并非如此。 –

回答

2

如果你想null或一个数字,开始[1-9]但可以包含[0-9],该模式是

(^[1-9][0-9]*$)|(^$) 

请注意,一个单个零是不允许的:0没有按不匹配。如果你想匹配它,以及(您想空字符串 - 0必须从[1-9]开始,可以包含[0-9]

(^[1-9][0-9]*$)|(^0?$) 
+0

OP's ['^(?:[1-9] \ d * |)$'](http://stackoverflow.com/questions/40354842/regular-expression-allow-null-or-1-to-9-数字/ 40354899)功能相同。 –

1

我会做这个表达:

(^[1-9][0-9]*$)|(^$) 

或者甚至使用\ d这意味着[0-9]更短:

(^[1-9]\d*$)|(^$) 
+0

@DmitryBychenko在这种情况下,现在我碰巧遇到了和你一样的解决方案。为你+1 ;-) –

相关问题