创建方法:①.字面量表示法:
var pattern = /cat/gi;
②.构造函数表示法:
var pattern = new RegExp("cat","gi');
需要转译的字符在这两种方式的表达中也是不同的:
var pattren1 = /\dct/;var pattern2 = new RegExp("\\dct"); //等同于pattern1var pattern3 = /\\/;var pattern4 = new RegExp("\\\\"); //等同于pattern3
将字面量表达式中的“\”的数量乘2即是构造函数方法中的形式
①.最主要的方法:exec()方法。该方法是专门为捕获数组创建的,返回与正则表达式匹配的第一个匹配项。即使设置了全局标志(g)也只会返回一项。
var text = "dag, bag, eag";//设置了全局模式var pattern1 = /.at/g;var matches = pattern1.exec(text);alert(matches[0]); //"dag"alert(matches.index); //0alert(pattern1.lastIndex); //3alert(matches[1]); //"undefined"matches = pattern1.exec(text);alert(matches[0]); //"bag"alert(matches.index); //5alert(pattern1.lastIndex); //8//不设置全局模式var pattern1 = /.at/;var matches = pattern1.exec(text);alert(matches[0]); //"dag"alert(matches.index); //0alert(pattern1.lastIndex); //3alert(matches[1]); //"undefined"matches = pattern1.exec(text);alert(matches[0]); //"dag"alert(matches.index); //0alert(pattern1.lastIndex); //3
②.test()方法。检测参数是否与正则表达式匹配。常用在不需要知道返回值只想知道是否匹配的情况下,常用于if语句中。
var pattern = /.at/g;var text = "cat";if(pattern.test(text)){ //匹配时执行的操作}else{ //不匹配时执行的操作}
正则表达式的source属性,valueOf()方法,toString()方法和toLocaleString()返回的都是它的字面量表示法,无论是通过构造函数方式建立的还是字面量方式建立的。