正则表达式掩盖IBAN

时间:2016-11-27 06:40:08

标签: javascript regex lookbehind iban

我想屏蔽IBAN。我必须只显示前7个字符和最后4个字符。

示例:

输入:

PL61109010140000071219812874

输出:

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

我写了以下正则表达式:

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

但是js不支持lookbehind

2 个答案:

答案 0 :(得分:2)

(?<=.{7}是一个外观断言,遗憾的是Javascript正则表达式不支持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个字符以外的所有字符

答案 1 :(得分:2)

您可以使用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)