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

来源:互联网 发布:豆瓣电影推荐算法 编辑:程序博客网 时间:2024/05/17 21:58

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

var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;var testNum = function (num) {    document.writeln(parse_number.test(num));};testNum('11');  //truetestNum('names');  //falsetestNum('-11.1');  //truetestNum('123.12.11.200');  //falsetestNum('123.12e-45');  //truetestNum('123.12E-45');  //truetestNum('123.12F-45');  //false

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

/^    $/i

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

-?

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

\d+

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

(?:\.\d*)?

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

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

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

阅读全文
1 0
原创粉丝点击