正则中字符串几个重要方法

1.search()返回是正则匹配首字符的索引,没有返回-1

var reg=/\*\d+/g;
var str="zhufeng*2017*peixun";
console.log(str.search(reg));//返回7

2.split(正则) 按照正则匹配的字符进行拆分为数组

var s="https://www.baidu.com/s?tn=baiduhome_pg&rsv_sug3=1&rsv_sug1=1&rsv_sug7=001";
var reg=/\?|&/g;
var ary=s.split(reg),obj={};
ary.shift();
console.log(ary);
for(var i=0;i<ary.length;i++){
var a=ary[i].split(/=/);
obj[a[0]]=a[1];
}
console.log(obj)
//返回 
Object {tn: "baiduhome_pg", rsv_sug3: "1", rsv_sug1: "1", rsv_sug7: "001"}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

replace(),使用正则加上修饰符g,就可以全部替换完

语法:replace(/正则/g,str)将正则匹配的内容替换

var s=" s1    s2  a1  v1 ";
    var reg=/\s+/g;
    s=s.replace(reg," ");
    console.log(s);
    //返回  s1 s2 a1 v1 
    var reg=/^\s+|\s+$/g;
    //首尾有空格
    s=s.replace(reg,"");
    //得出"s1 s2 a1 v1"

语法2:replace(正则,function(){})
第二个参数是一个函数,return返回什么 就向replace传什么

replace中的第二个参数可以传一个函数,替换一次执行一次,每一次执行都会默认给他传参数
第一个参数arguments[0]:大正则匹配的内容
第二个参数arguments[1]:第一个分组匹配的内容
第三个参数arguments[2]:第二个分组匹配的内容

倒数第二个参数:就相当于exec返回值中的那个index,就是大正则匹配的内容首字符出现的索引最后一个参数:就相当于exec返回值中那个input,原字符串
return返回什么就替换成什么
⬇️⬇️⬇️实例⬇️⬇️⬇️

var str="html2000js14000node6000";
var reg=/([a-z]+)(\d+)/g;
str=str.replace(reg,function(){
//console.log(arguments);
//html2000 ->学费是:2000;
return arguments[1]+"学费是:"+arguments[2]+";"
});
console.log(str);

RegExp.$n

表示正则第n个分组的内容如:$1,$2,$3
var str="a1b2c3";
var reg=/[a-z]+(\b+)[a-z]+(\b+)[a-z]+(\b+)/g
reg.exec(str);

posted @ 2017-06-26 14:09  和盛商行  阅读(250)  评论(0编辑  收藏  举报