正则表达式方法
exec()
调用者为正则表达式,参数为字符串,不能全局匹配
返回数组或者null
var str = 'hello world';
var reg = /ll/;
console.log(reg.exec(str)); //返回一个数组,第一项为匹配到的字符串
//如果匹配不到返回null
console.log(/AA/.exec(str)); //null
test()
调用者为正则表达式,参数为字符串
返回true或false
true代表字符串中有符合正则表达式的字符
flase代表字符串中没有符合正则表达式的字符
var str = 'hello world';
var reg = /ll/;
console.log(reg.test(str)); //true
console.log(/AA/.test(str)); //false
正则表达式字符串相关方法
split()
调用者为字符串,参数为正则表达式或字符串
返回一个数组,第一项为匹配到的字符串
var str = 'hello world';
console.log(str.match(/world/i));
match()
调用者为字符串,参数为正则表达式或字符串
返回字符串的位置,匹配不到返回-1
var str = 'hello World';
console.log(str.search('World')); //-1
console.log(str.search(/World/i)); //6
replace()
调用者为字符串,第一个参数为正则表达式或字符串,第二个参数表示要替换的字符串
返回值为替换后的字符串
return返回值会替换掉匹配到的所有内容,而不仅仅是$1
var str = 'hello World';
// replace 替换字符串
console.log(str.replace('world', 'nihao')); // hello nihao 没有字符串,则返回原来的字符串
console.log(str.replace(/world/i, 'nihao'));// hello nihao
RegExp.$1是什么?
RegExp 是javascript中的一个内置对象。为正则表达式。
RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,
以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配
例子:
var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正则表达式 匹配出生日期(简单匹配)
r.exec('1985-10-15');
s1=RegExp.$1; //1985
s2=RegExp.$2; // 10
s3=RegExp.$3; // 15
alert(s1+" "+s2+" "+s3)//结果为1985 10 15