我有一个文本框,我创建使用。NET…
通过使用该文本框,用户只能键入数字。但不能以0开头。从1-9开始。在用户在第一个字符的1-9中键入后,用户可以键入0。
Regex reg = null;
reg = new System.Text.RegularExpressions.Regex("^[1-9][0-9]*$")
return reg.IsMatch(str);
这是我的正则表达式。通过使用它,我不能键入1-9。但只有0和字母。但是如果我使用^[1-9],我可以键入数字,但不能键入0。
我已经尝试了你们所有人建议的所有答案。但是仍然不起作用。我又不是没有读过你所有的答案。
这里是图片…
我想第一次验证,用户只能键入数字,但从不是0或字母而是1-9的值开始。在第一个字符之后,用户只能键入0-9。
我确实使用Int. TryParse,但我在按下按钮处理后使用它。
reg = new System.Text.RegularExpressions.Regex("^[^0-9]");
该正则表达式仅接受从0到9的数字。
reg = new System.Text.RegularExpressions.Regex("^[^1-9]");
该正则表达式仅接受从1到9的数字。
如何为第二个字符添加更多表达式到正则表达式,直到只接受数字0-9的其余部分?
顺便说一下,我不在乎0.99,因为在这里,价格是固定的。不是0.99或0.123…
还有别的办法吗?谢谢。
如果你在看价格之类的东西,你需要考虑0.99
可能是完全有效的。对于这样的事情,我只是从一个不复杂的^[0-9]*(\.[ 0-9]{0,2})? $
开始(同样,可能会有边缘情况,可能会使它更复杂,比如小数点后的三位数字等等)并允许前导零,因为它们无论如何都不会“损坏”值。
它必须以非零开头,只需将初始[0-9]*
更改为[1-9][0-9]*
。仅对于整数(似乎从您添加的示例数据中可以看出),即:
^[1-9][0-9]*$
要匹配以除零之外的任何数字开头的数字:
^[1-9][0-9]*$
如果你也想匹配0:
^([1-9][0-9]*)|([0]+)$
如果您只想要一个零,请删除最后一个加号
要允许第一个非零之后的任何字母数字:
^[1-9a-zA-Z][0-9a-zA-Z]*$
这是最适合我的:
^(?!(0))[0-9]+$