RegExp
- RegExp是Regular Expression(合格的表达式)缩写。
- new RegExp(arg1, arg2); arg1为字符串或字面量正则对象。arg2为修饰符。
- 如果arg1为字符串代表的是正则表达式中的内容。
RegExp和//(字面量)的关系
- new RegExp()和//都是创建正则的方式。前者是通过new实例化,后者是字面量。
- RegExp的修饰符需要放到第二个参数,并且为字符串形式。字面量直接将修饰符跟在/后面。
var reg = /abc/i;
var regExp = new RegExp('abc', 'i');
- RegExp可以直接使用变量,//不可以。例如:
var a = 'test';
var regExp = new RegExp(a);
var reg = /a/;
var str = 'test';
regExp.test(str); // true
reg.test(str); // false;
- RegExp(reg)所生成的对象和reg是同一个引用。new RegExp(reg)所生成的对象和reg是两个不同的对象。
var reg = /a/;
var regExp = RegExp(reg);
console.log(reg === regExp); // true
var reg = /a/;
var regExpNew = new RegExp(reg);
console.log(reg === regExpNew); // false
test
- test是正则对象的方法。它可以用于检测字符串是否符合正则表达式的规则。
- 如果符合则返回true。反之为false。
- 检测字符串时,默认严格区分大小写,如果正则使用了修饰符 i 则忽略大小写。
var str = 'abcTesTabc';
var reg = /test/;
reg.test(str); // false;
var str = 'abcTesTabc';
var reg = /test/i;
reg.test(str); // true;
match
- match是字符串的方法。它可以用于匹配出字符串中所有符合正则表达式的子字符串。
- 默认为不忽略大小写,且只匹配出第一个符合规则的字符串。
- 使用了修饰符g则会匹配出所有符合规则的子字符串。
- 如果未匹配出任何结果,返回null。
var str = 'abc123Abc';
var reg = /abc/;
str.match(reg); // 匹配出一个abc。
var str = 'abc123Abc';
var reg = /abc/i; // 忽略大小写
str.match(reg); // 匹配出一个abc。
var str = 'abc123Abc';
var reg = /abc/ig; // 忽略大小写,且全局匹配。
str.match(reg); // 匹配出abc和Abc。
var str = '1abc123\nAbc'; // 多行匹配首字母
var reg = /^abc/im; // 忽略大小写,多行匹配
str.match(reg); // 匹配出Abc
修饰符
- i 忽略大小写
- g 全局匹配
- m 多行匹配,通常结合\n和^使用,如果要匹配第二行的开头字母,则需要用到m(见match中的例子)
网友评论