字符串replace方法的使用

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

做用:返回一個由替換值替換一些或全部匹配的模式後的新字符串

參數詳解:
第一個參數能夠爲正則對象或者字符串字面量
第二個參數能夠爲一個新字符串也能夠爲一個函數,該函數返回替換項
一、第二個參數爲字符串的狀況:
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
一、第二個參數爲函數的狀況:
替換函數參數詳解
變量名 表明的值
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
相關文章
相關標籤/搜索