为了账号安全,请及时绑定邮箱和手机立即绑定

帮忙写一个正则?

帮忙写一个正则?

尚方宝剑之说 2019-03-20 18:19:45
一个长度不固定的字符串, 保留首尾各3个字符, 其余部分内容用 "" 号代替, 并且 "" 号的数量和去除首尾个3个字符后的内容长度一样 ,这么一个需求.比如 let str = "123456789" 变成 123*789需求好实现, 主要想问问, 用一句正则能不能实现?如果长度固定str.replace(/(.{3}).{3}(.{3})/, "$1***$2")倒是能实现, 主要是长度不固定怎么实现
查看完整描述

4 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

replace接受函数作为参数,如果匹配正则那么函数的第一个参数对应$1,第二个对应$2,以此类推...replace 使用function作为参数

let str = "123453333336789"

str.replace(/(.{3}).*(.{3})/, function(match,p1,p2){return p1+"*".repeat(str.length-6)+p2})

//"123*********789"


查看完整回答
反对 回复 2019-04-02
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

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,'*'));


查看完整回答
反对 回复 2019-04-02
  • 4 回答
  • 0 关注
  • 496 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信