2016-11-27 71 views
0

我想掩飾IBAN。我只能顯示前7個字符和後4個字符。正則表達式掩蓋IBAN

例子:

輸入:

PL61109010140000071219812874 

輸出:

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

我寫了下面的正則表達式:

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

但JS不支持回顧後

回答

2

您可以使用組在正則表達式來做到這一點,而不是回顧後

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

+0

感謝,完美的作品 – Nemesis

+0

@Nemesis所有,但最後4個字符我的榮幸 – Ibrahim

2

(?<=.{7}是一個lookbehind斷言,不幸的是JavaScript正則表達式不支持lookbehind。

您可以使用substr,並在Javascript這個先行:

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, '*') - 使用前瞻,替換*
相關問題