正则表达式-验证带千分号的,带任意位小数的数字类型

想写一个正则表达式,验证带千分号的,带任意位小数的数字类型

网上找来找去找到几个都不行,然后根据下面两个自己组装了一下,终于成功:

^[-+]?(\d+(\.\d*)?|\.\d+)[dD]?$ 可以带正负号的,任意位小数的实数

(\d*(,\d{3})*(.(\d{3},)*\d+)?) 不带正负号,可以带任意位小数的实数,但是有bug,如果给小数写上千分位,也能通过验证

第一次优化

^[-+]?(\d*(,\d{3})*(.(\d{3},)*\d+)?|\.\d+)[dD]?$ bug依旧

第二次优化

^[-+]?(\d*(,\d{3})*(.\d+))[dD]?$ bug消除了

最后试了试貌似这样也可以

^[-+]?(\d*(,\d{3})*.(\d+)?)

最终解决方案,暂时还没有发现bug

^[-+]?(\d*(,\d{3})*.(\d+)?)

2017.1.4

谢谢网友指出的bug,下面是新方案:

^[-+]?\d{1,3}(,\d{3})*(\.(\d*))?$

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiangcns

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值