字符串replace要领的运用

方法名:str.replace(regexp|substr, newSubStr|function)

作用:返回一个由替代值替代一些或一切婚配的形式后的新字符串

参数详解:

第一个参数可认为正则对象或许字符串字面量
第二个参数可认为一个新字符串也可认为一个函数,该函数返回替代项
1、第二个参数为字符串的状况:
a、罕见状况:
var str='abcdefg';
var reg=/cd/g;
str=str.replace(reg,'');
console.log(str);   //abefg
b、运用变量名替代特定部位:(注重要替代特定部位的话,在正则对象中假如用括号包裹)
  • 变量为$$的状况:插进去用$标记替代正则对象中括号包裹的字符所婚配到的内容
var str='abcdefg';
var reg=/(c)d/g;
str=str.replace(reg,'$$d');//这里括号包裹的c被$替代了,然后再替代全部婚配到的cde
console.log(str);//ab$defg
  • 变量为$n的状况:插进去婚配第n个括号中的字符
var str='abcdefg';
var reg=/(c)d(e)/g;
str=str.replace(reg,'$2d$1');   //这里把婚配的第一个内容合第二个内容替代位置($1婚配第一个位置,$2婚配第二个位置),然后再替代全部婚配到的cde
console.log(str);   //abedcfg
  • 变量为$&的状况:插进去被正则对象婚配到的字符
var str='abcdefg';
var reg=/(c)d(e)/g;
str=str.replace(reg,'$&d$1$2');//这里在婚配到的d前面插进去全部婚配到的字符cde,在d背面插进去婚配到的第一个和第二个括号中的内容,然后再替代全部婚配到的cde
console.log(str);//abcdedcefg
  • 变量为$`的状况:插进去当前婚配的子串左侧的内容
var str='abcdefg';
var reg=/(c)d(e)/g;
str=str.replace(reg,'d$`');//这里是把婚配到的字符串cde左侧内容ab插进去到d背面,然后再替代全部婚配到的cde
console.log(str);//abdabfg
  • 变量为$’的状况:插进去当前婚配的子串右侧的内容
var str='abcdefg';
var reg=/(c)d(e)/g;
str=str.replace(reg,"d$'");//这里是把婚配到的字符串cde右侧内容fg插进去到d背面,然后再替代全部婚配到的cde(注重这里的单引号要用双引号包裹)
console.log(str);//abdfgfg
1、第二个参数为函数的状况:

替代函数参数详解

变量名代表的值
match婚配的子串。(对应于上述的$&。)
p1,p2, …类似于上述$1,$2……
offset婚配到的子字符串在原字符串中的偏移量。(比方,假如原字符串是“abcd”,婚配到的子字符串是“bc”,那末这个参数将是1)
string被婚配的原字符串。
var str='xiaoming';
var reg=/(a)o(m)/g;
function replacer(match, p1, p2, offset, string) {
    console.log(match, p1, p2, offset, string);//aom a m 2 xiaoming
  return [p1, p2].join(' - ');
}
var newString = str.replace(reg, replacer);
console.log(newString);  //xia - ming
    原文作者:小前端
    原文地址: https://segmentfault.com/a/1190000013149953
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞