regex.test():它来自哪里?

时间:2012-10-10 02:56:55

标签: javascript

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

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

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

为什么它会提醒true而不是发出错误?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

pattern是正则表达式对象

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

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

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

开头和结尾的/是以下方面的简写:

new RegExp("[1-9][1-9]{5}"); // /[1-9][1-9]{5}/