求个正则表达式

ronniegxq 2014-02-13 02:13:36
用来检测正常的纯数字(包含负数和小数)
另外,当数字被逗号以每3位分割开时,也要能检测通过

正确的例子
1,234
-1,234.77

错误的例子
12,34
1,2,3
1,2.34
1.2,3


...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
王集鹄 2014-02-13
  • 打赏
  • 举报
回复
推荐一个测试正则WEB工具:http://jssdk.com/regex/
王集鹄 2014-02-13
  • 打赏
  • 举报
回复
/^[+-]?([1-9](\d{2})?(,\d{3})*(\.\d*[1-9])?|0(\.\d*[1-9])?|[1-9]\d*(\.\d*[1-9])?)$/
正确的例子
0
1
1000
2000000
1,234
1,234.01
-1,234.77
-1,121,234.77
-121,234.77
+2.1
+2.10120132
-0.1

错误的例子
2000,000
+2.10120132.2
a
031
-0.10
+0,123
0,111
12,34
1,2,3
1,2.34
1.2,3
似梦飞花 2014-02-13
  • 打赏
  • 举报
回复
var a=['-0.234','0.234','0,234,234','1,234,234','-1,234.77','12,34','1,2,3','1,2.34','1.2,3','1.1']; var reg=/^[+-]?([1-9]\d{0,2}(,\d{3})*(\.\d+)?|0(\.\d+)?)$/; for(var i=0;i<a.length;i++){ alert(a[i]+'||'+reg.test(a[i])); } 额 是的
ronniegxq 2014-02-13
  • 打赏
  • 举报
回复
引用 3 楼 zzgzzg00 的回复:
var reg=/^[+-]?[1-9]\d{0,2}(,\d{3})*(\.\d+)?$/; 看看这样行不
这样的话0.123就会被拦住了。。好像
似梦飞花 2014-02-13
  • 打赏
  • 举报
回复
var reg=/^[+-]?[1-9]\d{0,2}(,\d{3})*(\.\d+)?$/; 看看这样行不
ronniegxq 2014-02-13
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
var a=['1,234','-1,234.77','12,34','1,2,3','1,2.34','1.2,3']; var reg=/^[+-]?\d+(,\d{3})*(\.\d+)?$/; for(var i=0;i<a.length;i++){ alert(a[i]+'||'+reg.test(a[i])); } 类似这样试试
谢谢你的回答,还有一个问题就是0,123是算错误的。 这个情况上面的公式好像拦不住
似梦飞花 2014-02-13
  • 打赏
  • 举报
回复
var a=['1,234','-1,234.77','12,34','1,2,3','1,2.34','1.2,3']; var reg=/^[+-]?\d+(,\d{3})*(\.\d+)?$/; for(var i=0;i<a.length;i++){ alert(a[i]+'||'+reg.test(a[i])); } 类似这样试试

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧