正则表达式的两种定义方式
1.使用字面量形式定义正则表达式
例如:
var pattern1 = /.at/gi;
如果需要使用元字符则必须转义,例如:
var pattern2 = /[bc]at/gi;
pattern2.test("[bc]At"); //返回true
pattern2.test("[bc]At"); //返回false
pattern2.test("[bc]At"); //返回true
2.使用构造函数的方式定义正则表达式
例如:
var pattern3 = new RegExp("[bc]at","gi");
使用元字符则必须转义,例如:
var pattern2 = new RegExp("\[bc\]at","gi");
构造函数方式转换为字面量形式toString()
var pattern2 = new RegExp("\[bc\]at","gi");
pattern2.toString(); //返回"/[bc]at/gi"
exec()用法
返回的结果为匹配正则表达式的数组,返回第一个匹配信息的数组,没有匹配则返回null,在设置了全局匹配的模式下,每次调用都会查找新的匹配项。
var pattern3 = new RegExp("[bc]at","gi");
var result = pattern3.exec("cat,bat");
alert(result); //返回"cat"
var result = pattern3.exec("cat,bat");
alert(result); //返回"bat"
var result = pattern3.exec("cat,bat");
alert(result); //返回"null"
var result = pattern3.exec("cat,bat");
alert(result); //返回"cat"
test()用法
模式与参数匹配的情况下返回true,否则返回false。
var pattern1 = /.at/gi;
var result = pattern1.test("cat,bat");
alert(result); //返回true
var result = pattern1.test("cat,bat");
alert(result); //返回true
var result = pattern1.test("cat,bat");
alert(result); //返回false
var result = pattern1.test("cat,bat");
alert(result); //true