微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Inputmask - 正则表达式货币和可选的小数位

如何解决Inputmask - 正则表达式货币和可选的小数位

我正在尝试使用 Robin Herbots Inputmask 插件创建货币正则表达式,但无法找到一种方法使其全部协同工作 我需要一个允许 2 到 10 位精度的正则表达式,并在千位上添加一个逗号,如下所示:

1,123.00

123.12345

1,123,456.1234567890

等等。我最终得到了这些正则表达式 ^\\d{1,3}(?:,\\d{3})*$\d{1,99},\d{2,10}。他们都实现了我所需要的,但是是分开的。如何让它们一起工作?

谢谢!

解决方法

你可以使用

/^(?=(?:,?\d){1,99}(?:\.|$))\d{1,3}(?:,\d{3})*(?:\.\d{2,10})?$/

参见regex demo

详情

  • ^ - 字符串的开始
  • (?=(?:,99}(?:\.|$)) - 一个正向前瞻,需要出现 1 到 99 次可选的 , 后跟一个数字,然后跟随着 . 或字符串结尾
  • \d{1,3} - 一到三位数
  • (?:,\d{3})* - 零个或多个逗号,然后是三个数字
  • (?:\.\d{2,10})? - . 和两到十个数字的可选出现
  • $ - 字符串结束。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。