我有一个使用.NET创建的文本框..
通过使用该文本框,用户只能键入数字.但不是从0开始,以1-9开头.在第一个字符的1-9中的用户键之后,用户可以键入0.
Regex reg = null;
reg = new System.Text.RegularExpressions.Regex("^[1-9][0-9]*$")
return reg.IsMatch(str);
Run Code Online (Sandbox Code Playgroud)
这是我的正则表达式.通过使用我不能键入1-9.但只有0和字母表.但如果我使用^ [1-9]我可以键入数字,但不能键入0.
我已经尝试过你们所有人建议的所有答案.但还是行不通.这不是我不读你所有的答案.
这是图片..

我想在第一次验证,用户只能键入数字,但以非0或字母但1-9的值开头.在第一个字符之后,用户只能键入0-9.
我确实使用Int.TryParse,但我按下按钮进行处理后使用它.
reg = new System.Text.RegularExpressions.Regex("^[^0-9]");
Run Code Online (Sandbox Code Playgroud)
正则表达式只接受0到9之间的数字.
reg = new System.Text.RegularExpressions.Regex("^[^1-9]");
Run Code Online (Sandbox Code Playgroud)
正则表达式只接受1到9之间的数字.
如何为第二个字符添加更多表达式到正则表达式,直到其余只接受数字0-9?
顺便说一下,我不在乎0.99,因为在这里,价格是固定的.不是0.99或0.123 ..
还有其他办法吗?谢谢.
pax*_*blo 26
如果您正在寻找价格之类的东西,您需要考虑这0.99可能是完全有效的.对于这样的事情,我只想用一个不复杂的开始^[0-9]*(\.[0-9]{0,2})?$(又可能是边缘的情况下,可能使之更加复杂,如小数点后三位数字等),并允许前导零,因为它们不"伤害"无论如何,这个价值.
它必须以非零开始,只需将初始值更改[0-9]*为a [1-9][0-9]*.仅对于整数(似乎由您添加的样本数据表示),那将是:
^[1-9][0-9]*$
Run Code Online (Sandbox Code Playgroud)
per*_*eal 13
要匹配以任何数字开头但以零为单位的数字:
^[1-9][0-9]*$
Run Code Online (Sandbox Code Playgroud)
如果你想匹配0:
^([1-9][0-9]*)|([0]+)$
Run Code Online (Sandbox Code Playgroud)
如果只想要一个零,则删除最后一个加号
要在第一个非零之后允许任何字母数字:
^[1-9a-zA-Z][0-9a-zA-Z]*$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69977 次 |
| 最近记录: |