【问题标题】:regex to mask IBAN正则表达式来掩盖 IBAN
【发布时间】:2017-04-11 02:53:21
【问题描述】:

我想屏蔽 IBAN。我只需要显示前 7 个字符和后 4 个字符。

例子:

输入:

PL61109010140000071219812874

输出:

PL61109***********2874

我写了以下正则表达式:

(?<=.{7})(.*)(?=.{4})

但是js不支持lookbehind

【问题讨论】:

    标签: javascript regex lookbehind iban


    【解决方案1】:

    您可以在 Regex 中使用组来代替 LookBehind

    var myString = "PL61109010140000071219812874";
    var myRegexp = /\w{7}(.*)\w{4}/g;
    var match = myRegexp.exec(myString);
    myString = myString.replace(match[1], '*********');
    console.log(myString)

    【讨论】:

    • @Nemesis 我的荣幸
    【解决方案2】:

    (?&lt;=.{7} 是一个lookbehind 断言,不幸的是Javascript regex 不支持lookbehind。

    您可以在 Javascript 中使用 substr 和前瞻:

    var s = 'PL61109010140000071219812874';
    
    var r = s.substr(0,7) + s.substr(7).replace(/.(?=.{4,}$)/g, '*');
    
    console.log(r);
    • s.substr(0,7) - 获取从开始到第 7 个位置的字符
    • s.substr(7) - 从第 7 位开始获取字符
    • .replace(/.(?=.{4,}$)/g, '*') - 使用前瞻,用* 替换除最后 4 个字符之外的所有字符

    【讨论】:

      猜你喜欢
      • 2019-08-08
      • 2017-11-23
      • 2014-06-17
      • 2021-04-26
      • 2021-10-22
      • 2017-12-20
      • 1970-01-01
      • 2013-04-16
      相关资源
      最近更新 更多