Regex 我使用什么正则表达式指定1000000以下的数字?

Regex 我使用什么正则表达式指定1000000以下的数字?,regex,Regex,如果允许输入1000000(100万)以下的数字并保留两位小数,那么最好的正则表达式是什么?例如: 有效: 一, 1.10 9999999.99(最大值) 0.50 无效 1.5 一, 一百万 基本上,货币价值低于100万 我提出了以下内容,但它需要小数点,如果添加小数点,则不需要小数点: ^[0-9]{1,6}\\.?[0-9]{0,2}$ 你可以试试这个^(\d|[1-9]\d{1,5})(\.\d{2})$匹配100万以下的任何数字,并有两个可选的小数位。将不匹配前导零 如果允

如果允许输入1000000(100万)以下的数字并保留两位小数,那么最好的正则表达式是什么?例如:

有效:

  • 一,
  • 1.10
  • 9999999.99(最大值)
  • 0.50
无效

  • 1.5
  • 一,
  • 一百万
基本上,货币价值低于100万

我提出了以下内容,但它需要小数点,如果添加小数点,则不需要小数点:

^[0-9]{1,6}\\.?[0-9]{0,2}$
你可以试试这个
^(\d|[1-9]\d{1,5})(\.\d{2})$
匹配100万以下的任何数字,并有两个可选的小数位。将不匹配前导零


如果允许前导零,请使用这一个
^0*\d{1,6}(\.\d{2})$

我将附和这样的观点,即输入值后,您应该使用编程语言检查这一点

当然,像这样的要求可以通过“1-6位数字加上一个小数点和两个以上的数字”来满足,但在我看来“正则表达式不是实现这一点的合适方法”,因为很快业务部门就会在这一要求上出现扭曲,这将挫败这种方法。当,而不是如果,这种情况发生时,你会后悔尝试过这样做


使用正则表达式确保输入是“一个数字”,但不要检查该数字的特征。在应用程序的其他地方使用if/then/else逻辑来验证此数据和所有其他数据验证规则。“少于100万”只是另一条规则,是众多规则中的一条。

^\d{1,6}(?:\.\d{1,2})$
应该有效。@Matt为什么“1”有效?\实际上永远不要使用正则表达式来实现这一点。使用编程语言的运算符功能。@Vishnudev这是与一起使用的,客户端给了我一个非常严格的规范,用户不能输入无效的值。为什么首先使用带有输入掩码的正则表达式呢。为什么parseInt(值)<1000000