两种书写方式:
==>字面量形式:var expression = / pattern / flags;
==>正则表达式的方式:var expression = new RegExp("pattern","flags");
==>二者关系(可以使用字面量来定义的任何表达式,都可以使用构造函数来定义):
模式中使用的所有元字符都必须转义!!!正则表达式中的元字符包括:
( [ { \ ^ $ | ) ? * + . ] }
转义(这些元字符在正则表达式中都有一或多种特殊用途,因此如果想要匹配字符串中包含的这些字符,就必须对它们进行转义。):
注:正则表达式字面量始终会共享同一个RegExp实例,而使用构造函数来创建的每一个新RegExp实例都是一个新实例。
RegExp实例属性:(通过这些属性可以取得有关模式的各种信息,但却没有多大用处,因为这些信息全都包含在模式声明中)
RegExp实例方法:exec() 和 test()
exec()方法专门为捕获组而设计,其包含两个额外的属性:index和input。
index表示匹配项在字符串中的位置
input表示应用正则表达式的字符串(在捕获返回的数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项,详见下面图红框框部分))
test()接受一个字符串参数。在模式与该参数匹配的情况下返回true;否则,返回false。
RegExp实例继承toLocalString()和toString()方法
RegExp构造函数属性: