尚方寶劍之說
2019-03-20 18:19:45
一個長度不固定的字符串, 保留首尾各3個字符, 其余部分內(nèi)容用 "" 號代替, 并且 "" 號的數(shù)量和去除首尾個3個字符后的內(nèi)容長度一樣 ,這么一個需求.比如 let str = "123456789" 變成 123*789需求好實現(xiàn), 主要想問問, 用一句正則能不能實現(xiàn)?如果長度固定str.replace(/(.{3}).{3}(.{3})/, "$1***$2")倒是能實現(xiàn), 主要是長度不固定怎么實現(xiàn)
4 回答

江戶川亂折騰
TA貢獻1851條經(jīng)驗 獲得超5個贊
replace接受函數(shù)作為參數(shù),如果匹配正則那么函數(shù)的第一個參數(shù)對應(yīng)$1
,第二個對應(yīng)$2
,以此類推...replace 使用function作為參數(shù)
let str = "123453333336789"
str.replace(/(.{3}).*(.{3})/, function(match,p1,p2){return p1+"*".repeat(str.length-6)+p2})
//"123*********789"

收到一只叮咚
TA貢獻1821條經(jīng)驗 獲得超5個贊
function filterFunc(str,char){
var transStr=str.substring(3,str.length-3);
return str.substring(0,3)+transStr.replace(/\w/g,char)+str.substring(str.length-3,str.length);
}
console.log(filterFunc(Str,'*'));
添加回答
舉報
0/150
提交
取消