为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式验证金钱的最小值

正则表达式验证金钱的最小值

largeQ 2023-09-14 22:05:00
我正在使用下面的正则表达式来验证金钱,效果很好。^\d{1,3}(,\d{3})*$现在我想添加最低金额,就像最低金额应该是20,000 任何人都可以帮助我吗?小提琴: https: //regexr.com/5h5bf小提琴已更新为正确的表达
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

阅读评论,我不确定正则表达式是否会成为您前进的方向,但您似乎已经下定决心。您似乎希望验证一个以逗号分隔的字符串,该字符串需要从 20,000 开始,其中数字的每个第二部分都是 3 位数字长。我想出了:

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

查看在线演示


  • ^- 开始弦锚。

  • (?:- 打开第一个非捕获组。

    • [2-9]\d- 2-9 范围内的数字,后跟任意数字。

    • |- 或者。

    • [1-9]\d\d- 1-9 范围内的数字,后跟任意两位数字。

    • |- 或者。

    • [1-9],\d{3}- 1-9 范围内的数字,后跟逗号和任意三位数字。

    • )- 关闭第一个非捕获组。

  • (?:- 打开第二个非捕获组。

    • ,\d{3}- 逗号后跟任意三位数字。

    • )+- 关闭第二个非捕获组并至少重复一次。

  • $- 结束弦锚。


作为替代方案,您也可以使用前瞻,例如:

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

查看在线演示


  • ^- 开始弦锚。

  • (?=.{6,}- 正向预测 6 个或更多字符。

  • (?!1.{5}$)- 负向前查找 1 后跟 5 个字符,直到字符串结束。

  • [1-9]\d?\d?- 1-9 范围内的数字,后跟两个可选数字(也可以写[1-9]\d{0,2})。

  • (?:- 打开第二个非捕获组。

    • ,\d{3}- 逗号后跟任意三位数字。

    • )+- 关闭非捕获组并至少重复一次。

  • $- 结束弦锚。


查看完整回答
反对 回复 2023-09-14
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信