我对下面名为 test 的函数(第 3 行)的使用感到好奇:
var pattern = /[1-9][1-9]{5}/;
var str = 'this is 248760!';
alert(pattern.test(str));
我在一本书上看到了这个脚本,没有test(str)
函数的定义。
为什么它会提醒true
而不是给出错误?
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}/
pattern
变量实际上是正则表达式对象(因为前后/
字符),正则表达式具有成员函数test(...)
内置作为 JavaScript 的一部分。