想写一个正则表达式,验证带千分号的,带任意位小数的数字类型
网上找来找去找到几个都不行,然后根据下面两个自己组装了一下,终于成功:
^[-+]?(\d+(\.\d*)?|\.\d+)[dD]?$ 可以带正负号的,任意位小数的实数
(\d*(,\d{3})*(.(\d{3},)*\d+)?) 不带正负号,可以带任意位小数的实数,但是有bug,如果给小数写上千分位,也能通过验证
第一次优化
^[-+]?(\d*(,)*\d+)?|\.\d+)[dD]?$ bug依旧
第二次优化
^[-+]?(\d*(,\d{3})*(.\d+))[dD]?$ bug消除了
最后试了试貌似这样也可以
^[-+]?(\d*(,\d{3})*.(\d+)?)
最终解决方案,暂时还没有发现bug
^[-+]?(\d*(,\d{3})*.(\d+)?)
原文链接:https://www.f2er.com/regex/361535.html