一个匹配数字的正则表达式(带详细解释)

数字可能由一个整数部分加上一个可选的负号、一个可选的小数部分和一个可选的指数部分组成。下面是一个匹配数字的正则表达式例子:

var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;

var testNum = function (num) {
    document.writeln(parse_number.test(num));
};

testNum('11');  //true
testNum('names');  //false
testNum('-11.1');  //true
testNum('123.12.11.200');  //false
testNum('123.12e-45');  //true
testNum('123.12E-45');  //true
testNum('123.12F-45');  //false

parse_number可成功检验出这些字符串中哪些符合哪些不符合。
parse_number分解为以下部分:

/^    $/i

//中用 ^ 和 $ 框定正则表达式,它指引这个正则表达式对文本中的所有字符都进行匹配。如果省略这些标识,那么只要一个字符串中包含一个数字这个正则表达式就会进行匹配。如果仅包含 ^ ,它将匹配以一个数字开头的字符串。如果仅包含 $ ,则匹配以一个数字结尾的字符串。i 标识符表示匹配时忽略大小写。

-?

负号后面的 ? 后缀表示这个负号是可选的。

\d+

\d的含义和[0-9]一样。它匹配一个数字。后缀 + 指引它可匹配一个或者多个数字。

(?:\.\d*)?

(?: …)?表示一个可选的非捕获型分组。* 指引这个分组会匹配后面跟随的0个或者多个数字的小数点。

(?:e[+\-]?\d+)?

这是另外一个可选的非捕获型分组。它会匹配一个e(或E)、一个可选的正负号以及一个或多个数字。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

遇见小美好

每一笔打赏都见证了你的努力💪

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

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

打赏作者

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

抵扣说明:

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

余额充值