Javascript数字正则表达式测试失败-无法找出原因

Javascript number regex test failing - can't figure out why

本文关键字:数字 正则表达式 测试 失败 Javascript      更新时间:2023-09-26

这是一个jsFiddle: jsFiddle

相关代码:

var number = /'d+(.'d+)?/g;
$('body').append(number.test(2.5) + "<br>");
$('body').append(number.test(20) + "<br>");
$('body').append(number.test(2) + "<br>");

输出
true
false
true

去掉g。这是不需要的,而且它会导致regex失败,因为RegExp对象会根据之前的匹配跟踪它的位置:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test

与exec(或与exec结合使用)一样,在同一个全局正则表达式实例上多次调用test将超越前一个匹配。

http://jsfiddle.net/BUpyd/1/