在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 幫忙寫(xiě)一個(gè)正則?

幫忙寫(xiě)一個(gè)正則?

一個(gè)長(zhǎng)度不固定的字符串, 保留首尾各3個(gè)字符, 其余部分內(nèi)容用 "" 號(hào)代替, 并且 "" 號(hào)的數(shù)量和去除首尾個(gè)3個(gè)字符后的內(nèi)容長(zhǎng)度一樣 ,這么一個(gè)需求.

比如 let str = "123456789" 變成 123*789

需求好實(shí)現(xiàn), 主要想問(wèn)問(wèn), 用一句正則能不能實(shí)現(xiàn)?

如果長(zhǎng)度固定

str.replace(/(.{3}).{3}(.{3})/, "$1***$2")

倒是能實(shí)現(xiàn), 主要是長(zhǎng)度不固定怎么實(shí)現(xiàn)

回答
編輯回答
墨染殤

replace接受函數(shù)作為參數(shù),如果匹配正則那么函數(shù)的第一個(gè)參數(shù)對(duì)應(yīng)$1,第二個(gè)對(duì)應(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"
2017年10月4日 21:49
編輯回答
枕頭人

既然都知道$1是第一個(gè)匹配了,就沒(méi)有必要用函數(shù)了

let str = "123453333336789"
str.replace(/(^.{3})(.*)(.{3}$)/, "$1*$3")
//"123*789"
2017年7月3日 10:24
編輯回答
背叛者
'1234564526789'.replace(/(?<=\d{3})\d(?=\d{3})/g, '*')
'1234564526789'.replace(/(?<=.{3}).(?=.{3})/g, '*')

clipboard.png

2017年6月11日 23:36
編輯回答
拽很帥
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,'*'));
2018年6月30日 06:47