Rexact
Cheatsheet

Regex IMEI number

An IMEI isn't just "15 digits": the validator.js npm library checks this correctly, keeping the length check separate from the Luhn key computation - but a republication of that same regex on regexpattern.com widens the accepted length to 15-17 digits without explaining why. A GitHub utility, meanwhile, wrongly rejects any IMEI made of a single repeated digit - a restriction that exists in no standard. Here's a pattern that checks the one thing a regex actually can check here (the shape), compared against these three attempts.

/^\d{15}$/
passes 22/22 cases

Comparison of existing patterns

Implementation

const re = new RegExp("^\\d{15}$", "");
re.test(input);

Limits

  • Valide seulement la FORME (15 chiffres) : ne vérifie pas la clé de contrôle de Luhn calculée sur les 14 premiers chiffres — un IMEI syntaxiquement valide selon ce motif peut avoir une clé fausse et ne correspondre à aucun appareil réel.
  • N'exclut aucun TAC (Type Allocation Code, les 8 premiers chiffres) invalide : la liste des TAC réellement alloués par la GSMA évolue en continu et n'est pas encodable dans une regex.
  • Exige une chaîne de 15 chiffres consécutifs sans séparateur : la notation par groupes parfois affichée sur un appareil ou une facture (« 49-015420-323751-8 ») doit être retirée avant validation.
  • Ne distingue pas l'IMEI (15 chiffres) de l'IMEISV (Software Version, 16 chiffres : TAC + série + version logicielle, sans clé de contrôle) — les deux se ressemblent mais ne servent pas le même usage.

Related pages