2016-11-27 6 views
0

Je souhaite masquer IBAN. Je dois montrer seulement les 7 premiers caractères et les 4 derniers caractères.regex pour masquer IBAN

Exemple:

Entrée:

PL61109010140000071219812874 

Sortie:

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

J'ai écrit le regex suivant:

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

mais js ne prennent pas en charge lookbehind

Répondre

2

Vous pouvez utiliser des groupes dans Regex pour le faire au lieu de

lookbehind

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

+0

grâce, fonctionne parfaitement – Nemesis

+0

@Nemesis Mon plaisir – Ibrahim

2

(?<=.{7} est une assertion lookbehind, malheureusement regex Javascript ne supporte pas lookbehind.

Vous pouvez utiliser substr et un test avant pour ce en Javascript:

var s = 'PL61109010140000071219812874'; 
 

 
var r = s.substr(0,7) + s.substr(7).replace(/.(?=.{4,}$)/g, '*'); 
 

 
console.log(r);

  • s.substr(0,7) - Retourne les caractères du début à la 7ème place
  • s.substr(7) - Obtient des personnages de la 7ème place
  • .replace(/.(?=.{4,}$)/g, '*') - utilisation de ce paramètre, mais remplace tous les 4 derniers caractères avec *