1

我很好奇下面名为test的函数(第 3 行)的使用:

var pattern = /[1-9][1-9]{5}/;
var str = 'this is 248760!';
alert(pattern.test(str));

我在一本书中看到了这个脚本,并没有定义test(str)函数。

为什么它会发出警报true而不是给出错误?

4

2 回答 2

3

pattern变量实际上是正则表达式对象(因为之前和之后的字符/),并且正则表达式具有test(...)作为 JavaScript 一部分内置的成员函数。

于 2012-10-10T02:59:13.960 回答
3

pattern是一个正则表达式对象

/[1-9][1-9]{5}/.test("foo"); // valid javascript

正则表达式对象提供了许多成员函数,例如test(...)toString()仅举几例......

/[1-9][1-9]{5}/.toString(); // "/[1-9][1-9]{5}/"

/开头和结尾的's 是以下内容的简写:

new RegExp("[1-9][1-9]{5}"); // /[1-9][1-9]{5}/
于 2012-10-10T02:59:18.940 回答