一、exec、test、match、search的用法比较
1、pattern.exec(str)
根据pattern进行正则匹配,如果匹配到一个结果返回一个数组,第一个元素为匹配到的结果,第二个元素为匹配结果在字符串中的索引,第三个元素为原字符串。如果匹配失败,返回null。
function regexp() {
var reg=/\d/;
var str="ajda2msdv";
return reg.exec(str);
}
console.log(regexp());//[ '2', index: 4, input: 'ajda2msdv' ]
function regexp() {
var reg=/\d/;
var str="ajdamsdv";
return reg.exec(str);
}
console.log(regexp());//null
2、pattern.test(str)
测试string是否包含有匹配结果,包含返回true,不包含返回false。
function regexp() {
var reg=/\d/;
var str="ajda2msdv";
return reg.test(str);
}
console.log(regexp());//true
function regexp() {
var reg=/\d/;
var str="ajdamsdv";
return reg.test(str);
}
console.log(regexp());//false
3、str.match(pattern)
根据pattern进行正则匹配,如果匹配到一个结果返回一个数组,第一个元素为匹配到的结果,第二个元素为匹配结果在字符串中的索引,第三个元素为原字符串。如果匹配失败,返回null。
function regexp() {
var reg=/\d/;
var str="ajda2msdv";
return str.match(reg);
}
console.log(regexp());//[ '2', index: 4, input: 'ajda2msdv' ]
function regexp() {
var reg=/\d/;
var str="ajdamsdv";
return str.match(reg);
}
console.log(regexp());//null
4、str.search(pattern)
根据pattern进行正则匹配,如果匹配到一个结果,则返回它的索引数;否则返回-1。
function regexp() {
var reg=/\d/;
var str="ajda2msdv";
return str.search(reg);
}
console.log(regexp());//4
function regexp() {
var reg=/\d/;
var str="ajdamsdv";
return str.search(reg);
}
console.log(regexp());//-1