如何解决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 举报,一经查实,本站将立刻删除。