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