一个正则

slxliuxingbing 2010-02-22 12:35:21
匹配正数 负数 浮点数
但是必须是正确的符合规范的写法
如 00.123 12.1000 23. 这些都不符合规范
...全文
131 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
slxliuxingbing 2010-02-22
  • 打赏
  • 举报
回复
啊谢谢 指教
这么说/^-?([1-9]\d*)|0$/
就分成了
/^-?([1-9]\d*)/
或者
/0$/
00匹配 /0$/
-过客- 2010-02-22
  • 打赏
  • 举报
回复
| 表示“或”的关系,如果不用()限定范围,那么它指的就是左右两个整体取或的关系

^a|b$ 表示以“a”开头,或者以“b”结尾的字符串,也就是说“aa”或“bb”都是满足条件的,都可以匹配

而^(a|b)$表示整个字符串只能是“a”或“b”
slxliuxingbing 2010-02-22
  • 打赏
  • 举报
回复
你们写的都很好
我自己也有写
但是出问题 我想不明白
/^-?([1-9]\d*)|0$/
他为什么会匹配00了
不明白
/^-?([1-9]\d*)$/ 和 /^-?0$/ 都是不匹配00的
但是合到一起去就匹配了
为什么了?
王集鹄 2010-02-22
  • 打赏
  • 举报
回复
一楼二楼互补一下,[0-9]也就是\d,有^和$就没有必要g了
/^(+|-)?([1-9]\d*|0)(\.\d*[1-9])?$/

蹭分
-过客- 2010-02-22
  • 打赏
  • 举报
回复
try...

var reg = /^[+-]?([1-9][0-9]*|0)(\.[0-9]+)?$/;
shan1119 2010-02-22
  • 打赏
  • 举报
回复
alert(/^([1-9][0-9]*|0)([.][0-9]*[1-9])?$/g.test("00.123"));
alert(/^([1-9][0-9]*|0)([.][0-9]*[1-9])?$/g.test("12.1000"));
alert(/^([1-9][0-9]*|0)([.][0-9]*[1-9])?$/g.test("23."));

87,921

社区成员

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

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