Maison  >  Questions et réponses  >  le corps du texte

javascript - js正则匹配字符串制定位置?

比兔'sdfdsfds4443sd',正则匹配后三位把后三位换成'*',该怎么做?

巴扎黑巴扎黑2771 Il y a quelques jours363

répondre à tous(5)je répondrai

  • 阿神

    阿神2017-04-11 12:45:59

    // 匹配后 n 位
    'dsgsdghdfghfdghndx'.replace(/.{3}$/, '哈哈')
    
    // 匹配前 n 位
    'dsgsdghdfghfdghndx'.replace(/^.{3}/, '哈哈')

    répondre
    0
  • 迷茫

    迷茫2017-04-11 12:45:59

    > 'sdfdsfds4443sd'.replace(/(.*).../,'$1***')
    'sdfdsfds444***'

    répondre
    0
  • 高洛峰

    高洛峰2017-04-11 12:45:59

    如果只是想把后三位替换成'*':

    str.slice(0, str.length - 3) + '***'

    想获得后几位直接去截就可以了。

    répondre
    0
  • 高洛峰

    高洛峰2017-04-11 12:45:59

    "sdfdsfds4443sd".replace(/\w{3}$/gi,"***");
    

    正则做这事儿也是典型的大炮打蚊子;直接使用字符串操作

    "sdfdsfds4443sd".slice(0,-3) + "***";
    

    répondre
    0
  • 高洛峰

    高洛峰2017-04-11 12:45:59

    "abcde".replace(/...$/, '***')
    // 或
    "abcde".replace(/.{0,3}$/, _=> _.replace(/./g, '*'))

    建议改用substr: 这问题简单到不适合正则,而且在没写好的正则引擎上可能引起性能问题甚至ddos。

    répondre
    0
  • Annulerrépondre