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

来源:互联网 发布:网页数据采集工具 编辑:程序博客网 时间:2024/06/05 18:48

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


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

^[-+]?(\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*))?$


0 0
原创粉丝点击