我很好奇下面使用名为 test (第3行)的函数:
var pattern = /[1-9][1-9]{5}/;
var str = 'this is 248760!';
alert(pattern.test(str));
我在一本书中看到了这个脚本,并没有test(str)
函数的定义。
为什么它会提醒true
而不是发出错误?
答案 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}/