正则表达式:是描述字符模式的对象。
直接量创建RegExp对象: var pattern=/s$/;
构造函数创建:var pattern=new RegExp("s$");
字符类:将直接量字符单独放进【】内就组成了字符类。/[abc]/ =>"a"、"b"、"c"中的任意一个都匹配。
^否定字符类:/[^abc]/ abc之外的字符
String方法中使用表达式:
search() 它的参数是一个正则表达式,返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,就返回-1.
"JavaScript".search(/script/i);
replace()方法用以执行检索与替换操作。第一个参数是一个正则表达式,第二个参数是要进行替换的字符串。如果设置了g,那么都替换,如果不带g,则只替换所匹配的第一个子串。
text.replace(/javascript/gi,"JavaScript");
match()方法是最常用的方法,唯一参数是一个正则表达式,返回一个由匹配结果组成的数组。
split()方法,这个方法用以将调用它的字符串拆分为一个子串组成 数组,使用的分隔符是split()的参数。
字符串正则表达式:match()
、replace()
、search()
和split()
ES6 将这 4 个方法全都定义在RegExp
对象上。
exec()方法对指定的字符串执行正则,如果没有找到任何匹配就返回null,如果找到就返回数组。
注意区分exec()和match()方法:
一:所属对象的不同:match方法属于字符串对象,exec方法属于正则表达式对象
二:方法返回的结果不同:
非全局匹配:两个方法的返回值完全一样。
全局匹配:match()方法返回一个存放所有匹配内容的数组;exec()返回数组不会存储所有的匹配,仅存储第一个匹配的内容。
全局匹配下,exec方法还可以与lastIndex属性配合使用。
lastIndex属性可以返回或者设置正则表达式将要开始的匹配的起始位置。
对match方法而言,lastIndex属性值始终为0。
test()方法是对字符串进行检测,如果包含正则表达式的匹配结果,则返回true.