cbd*_*per 3 javascript regex replace regex-group regex-lookarounds
我有这个用户价格输入,我想允许 0、1 或 2 个十进制数字。
题:
如果用户输入第三个十进制数字,我想替换输入。
类似于:
5 还行吧5, 没关系,因为它在等待小数5,5 还行吧5,55 还行吧5,555 这不行,我想删除最后一位数字并返回 5,555,555555555555 这也不行,用户可能会粘贴一些带有额外十进制数字的内容,我想将它们最多减少到 2 位小数,然后再次返回 5,55我怎样才能做到这一点?
我知道如何匹配字符串的结尾: /[,\d+]$/
但是如何用逗号后的前两位数字替换?
您的模式[,\d+]$将匹配逗号、数字或加号并断言字符串的结尾。
您可以在一组中捕获 1+ 位数字、一个可选的逗号和 0-2 位数字。然后匹配 0+ 位数字并替换为第 1 组。
^(\d+,?\d{0,2})\d*$
Run Code Online (Sandbox Code Playgroud)
解释
^ 开始严格( 捕获组 1
\d+ 1+ 位数,? 可选逗号\d{0,2} 0 - 2 位数字) 关闭群组\d* 匹配 0+ 位数字$ 断言字符串结束如果要保留小数点之前的部分,可以使用捕获组^(\d+),?\d{0,2}$并替换为第一个捕获组:
^(\d+,?\d{0,2})\d*$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1960 次 |
| 最近记录: |