【问题标题】:Regular expression to match numbers only not starting with zero正则表达式仅匹配不从零开始的数字
【发布时间】:2011-04-14 10:03:36
【问题描述】:

我在表单上有一个文本框,我希望用户只能输入数字,并且第一个数字不能为零。在这种情况下必须是哪种模式?

【问题讨论】:

  • windows 表单还是 web 表单?对于 webform Aliostad 得到了 windows 重载 onkeypress 事件的答案,如果它是 windows 窗体,我将提供代码

标签: c# .net regex


【解决方案1】:

使用这个表达式

string expression = @"^[1-9]\d*$";

想要测试表达式的任何人,请使用此链接:http://www.rubular.com/r/1JIPP8E1zH

【讨论】:

  • 但它不允许 eexample 10000 数字
  • @Namco,为什么?当然可以...看看这里rubular.com/r/1JIPP8E1zH
  • 哦..太好了,我喜欢这个网站。rubular..this
【解决方案2】:

尝试:

/^[1-9][0-9]*$/

你接受多长的字符串?

如果你也允许空字符串尝试:

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

【讨论】:

  • 如果数字的最大长度是10。那么?
【解决方案3】:

或者,我建议将其用于本地化目的,请考虑

 double.Parse(myTextBox.Text, System.Globalization.CultureInfo.CurrentCulture);

作为替代。它会根据安装的设置(文化)用小数或您喜欢的任何变化来解析数字。在我的国家,用点作为小数分隔符。

【讨论】:

  • 不错的选择,只是要注意TryParse 可能更有用,具体取决于。
猜你喜欢
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 2011-04-06
相关资源
最近更新 更多