前言:字符串方法replace相信大家都用过很多了,是个很实用的方法,但是你真的知道replace的全部用法吗?
一、简单字符替换
var str = "-moz-flex";
console.log(str.replace('-','&'));
输出结果
这个方法大家都知道,简单的将字符串中找到的第一个匹配字符进行替换。
二、配合正则进行字符替换
var str = "-moz-flex";
console.log(str.replace(/-/g,'&'));
输出结果
通过正则,找到所有匹配的字符,进行替换。
三、当第二个参数是函数时的用法
var str = "-moz-flex";
var str2 = str.replace(/-/g,function(all,index){
console.log(all);
console.log(index);
return '&';
});
console.log(str2);
输出结果
这是不难看出,回调函数中的第一个参数是正则匹配到的字符,第二个参数是该字符对应的索引值。
四、当第二个参数是函数时的第二种用法
var str = "-moz-flex";
var str3 = str.replace( /-([\da-z])/gi, function(all,letter){
console.log(all);
console.log(letter);
return letter.toUpperCase();
});
console.log(str3);
console.log('-------分割线-------');
var str4 = str.replace( /-([\da-z]+)-/gi, function(all,letter){
console.log(all);
console.log(letter);
return letter.toUpperCase();
});
console.log(str4);
输出结果:
这是会发现,当正则匹配到字符数不止一个的时候,回调函数的第二个参数不再是索引值了,而是去除特殊符号后的字母部分了。