前端正则表达式——replace()用法

replace常用于敏感词过滤。

如:

var str = "习近平主持中共中央政治局会议,研究2019年经济工作";
var reg = /习近平|中共|政治局/g
var res = str.replace(reg,function (S1) {
    console.log(S1)                              //S1依次返回:习近平  中共  政治局
    var result = '';
    for(var i=0;i<S1.length;i++){
        result += "X";
    }
    return result;
})
console.log(res);            //返回:XXX主持XX中央XXX会议,研究2019年经济工作

多参数情况:

var str1 = "2019-12-08";
var reg1 = /(\d+)-/g;
str1.replace(reg1,function (S0,S1,S2) {
    console.log("S0:"+S0);   //整体
    console.log("S1:"+S1);   //子项
    console.log("S2:"+S2);   //位置
})

结果:

如:将 rgb(255, 255, 255)颜色转换成16进制 #ffffff,去除","前后的空格。

function rgb2hex(sRGB) {
    return sRGB.replace(/^rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)$/g, function(S0, S1, S2, S3){    //S0:整体       S1、S2、S3:子项
        return '#' + hex(S1) + hex(S2) + hex(S3);  //S0:rgb(255, 255, 255)   S1:255   S2:255   S3:255
    });
}
function hex(n){
    return n < 16 ? '0' + (+n).toString(16) : (+n).toString(16);
}
var sRGB = 'rgb(255, 255, 255)';
console.log(rgb2hex(sRGB));

结果:#ffffff

猜你喜欢

转载自blog.csdn.net/wang_NiFeng/article/details/81747859