Javascript 用于验证具有最小值的货币的正则表达式

Javascript 用于验证具有最小值的货币的正则表达式,javascript,regex,asp.net-mvc,Javascript,Regex,Asp.net Mvc,我使用下面的正则表达式来验证货币是否正常工作 ^\d{1,3}(,\d{3})*$ 现在我想添加最低金额,就像最低金额应该是20000 谁能帮帮我吗 小提琴: 用正确的表达更新了fiddle阅读评论,我不确定regex是否是你的前进方向,但你似乎已经下定决心了。似乎您正在寻找验证一个逗号分隔的字符串,该字符串需要从20000开始,其中数字的第二部分是3位数。我想到了: ^(?:[2-9]\d|[1-9]\d\d|[1-9],\d{3})(?:,\d{3})+$ 在线查看 ^-开始字符串a

我使用下面的正则表达式来验证货币是否正常工作

^\d{1,3}(,\d{3})*$
现在我想添加最低金额,就像最低金额应该是
20000
谁能帮帮我吗

小提琴:


用正确的表达更新了fiddle

阅读评论,我不确定regex是否是你的前进方向,但你似乎已经下定决心了。似乎您正在寻找验证一个逗号分隔的字符串,该字符串需要从20000开始,其中数字的第二部分是3位数。我想到了:

^(?:[2-9]\d|[1-9]\d\d|[1-9],\d{3})(?:,\d{3})+$
在线查看


  • ^
    -开始字符串ancor
  • (?:
    -打开第一个非捕获组。
    • [2-9]\d
      -一个介于2-9之间的数字,后跟任意数字
    • |
      -或
    • [1-9]\d\d
      -一个介于1-9之间的数字,后跟任意两个数字
    • |
      -或
    • [1-9],\d{3}
      -一个介于1-9之间的数字,后跟逗号和任意三个数字
    • -关闭第一个非捕获组
  • (?:
    -打开第二个非捕获组。
    • ,\d{3}
      -后跟任意三位数字的逗号
    • )+
      -关闭第二个非捕获组并至少重复一次
  • $
    -结束字符串ancor

作为替代,您也可以使用lookaheads,例如:

^(?=.{6,})(?!1.{5}$)[1-9]\d?\d?(?:,\d{3})+$
在线查看


  • ^
    -开始字符串ancor
  • (?=.{6,}
    -至少6个字符的正向前瞻
  • (?!1.{5}$)
    -1的负前瞻,后跟5个字符,直到字符串结束
  • [1-9]\d?\d?
    -一个介于1-9之间的数字,后跟两个可选数字(您也可以编写
    [1-9]\d{0,2}
  • (?:
    -打开第二个非捕获组。
    • ,\d{3}
      -后跟任意三位数字的逗号
    • )+
      -关闭非捕获组并至少重复一次
  • $
    -结束字符串ancor

阅读这些评论,我不确定正则表达式是否是您的前进方向,但您似乎已经下定决心。您似乎希望验证一个逗号分隔的字符串,该字符串需要从20000开始,其中数字的每一秒都有3位数长。我提出了:

^(?:[2-9]\d|[1-9]\d\d|[1-9],\d{3})(?:,\d{3})+$
在线查看


  • ^
    -开始字符串ancor
  • (?:
    -打开第一个非捕获组。
    • [2-9]\d
      -一个介于2-9之间的数字,后跟任意数字
    • |
      -或
    • [1-9]\d\d
      -一个介于1-9之间的数字,后跟任意两个数字
    • |
      -或
    • [1-9],\d{3}
      -一个介于1-9之间的数字,后跟逗号和任意三个数字
    • -关闭第一个非捕获组
  • (?:
    -打开第二个非捕获组。
    • ,\d{3}
      -后跟任意三位数字的逗号
    • )+
      -关闭第二个非捕获组并至少重复一次
  • $
    -结束字符串ancor

作为替代,您也可以使用lookaheads,例如:

^(?=.{6,})(?!1.{5}$)[1-9]\d?\d?(?:,\d{3})+$
在线查看


  • ^
    -开始字符串ancor
  • (?=.{6,}
    -至少6个字符的正向前瞻
  • (?!1.{5}$)
    -1的负前瞻,后跟5个字符,直到字符串结束
  • [1-9]\d?\d?
    -一个介于1-9之间的数字,后跟两个可选数字(您也可以编写
    [1-9]\d{0,2}
  • (?:
    -打开第二个非捕获组。
    • ,\d{3}
      -后跟任意三位数字的逗号
    • )+
      -关闭非捕获组并至少重复一次
  • $
    -结束字符串ancor

为什么不检查纯代码中的值是否为
=20000
?^这样。另外,听起来您只是在使用
20000
作为示例(对吗?)。要使用正则表达式验证数值范围,您将对每个范围使用非常不同的模式。不要期望任何“最小数量”都可以使用一种模式通过切换两位数字。我有一个带有其他字段的表单,也有其他表单验证。类似上面的验证是一个选项,但失去了一致性,我不想应用任何替代方法。根据我的经验,表单验证程序应该附带一些常见的东西,如
min
,或
max
。如果您的验证程序库只公开rege对于验证,它听起来很糟糕,也很难使用。我建议使用不同的验证库。甚至HTML5也会公开输入的数字验证。@JitendraPancholi,我已经在下面给你写了一个答案。看看这是否勾选了你的方框。为什么不检查纯代码中的值是否为
=20000
?^这听起来像是您只是使用
20000
作为示例(对吗?)。要使用正则表达式验证数字范围,您将为每个范围使用非常不同的模式。不要期望任何“最小金额”都可以使用模式通过切换两位数字。我有一个带有其他字段的表单,也有其他表单验证。类似上面的验证是一个选项,但失去了一致性,我不想应用任何替代方法。根据我的经验,表单验证程序应该附带一些常见的东西,如
min
,或
max
。如果您的验证程序库只公开rege对于验证,它听起来很糟糕,也很难使用。我建议使用不同的验证库。即使HTML5也会公开输入的数字验证。@JitendraPancholi,我在下面给你写了一个答案。看看这是否符合你的要求。