0

这是一个 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
4

1 回答 1

7

摆脱g. 它不是必需的,它会导致正则表达式失败,因为 RegExp 对象根据之前的匹配跟踪其位置:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/测试

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

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

于 2013-04-18T01:28:24.893 回答