Regex SIREN number
A SIREN is 9 digits - but an unanchored regex found on regex101.com matches any 9-digit subsequence inside a longer string, a 14-digit SIRET included. The official PEAR package Validate_FR requires display spaces ("552 100 554") to already be stripped before the call, without documenting that in the regex itself. Here's a pattern that checks the one thing a regex actually can check here (the exact length), compared against these three attempts and the Luhn key none of them compute.
/^\d{9}$/passes 22/22 cases
Comparison of existing patterns
| Source | pattern | Score on the corpus | ReDoS |
|---|---|---|---|
| regex101.com — motif « SIREN for french business register number », non ancré, matche n'importe quelle sous-séquence de 9 chiffres (un SIRET à 14 chiffres y compris) | (\d{9}|\d{3}[ ]\d{3}[ ]\d{3}) | 13 / 22 | safe |
| Paquet PEAR officiel Validate_FR (PHP) — exige que les espaces d'affichage aient déjà été retirés en amont, sans le documenter dans la regex | ^(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)$ | 22 / 22 | safe |
| Gist GitHub (fonctions MySQL de validation SIRET/SIREN) — aucune limite de longueur, valide comme SIREN n'importe quelle suite de chiffres | ^[[:digit:]]+$ | 14 / 22 | safe |
Implementation
const re = new RegExp("^\\d{9}$", "");
re.test(input);Limits
- Valide seulement la FORME (9 chiffres) : ne vérifie pas la clé de Luhn du neuvième chiffre — un SIREN syntaxiquement valide selon ce motif peut avoir une clé fausse et ne correspondre à aucune entreprise réellement immatriculée.
- Ne consulte pas le répertoire SIRENE de l'INSEE : seule une requête à l'API officielle (recherche-entreprises.api.gouv.fr) confirme qu'un SIREN est réellement attribué et actif, pas seulement bien formé.
- Exige une chaîne de 9 chiffres consécutifs sans séparateur : l'espacement par groupes de 3 couramment utilisé à l'affichage (« 552 100 554 ») doit être retiré avant validation.
- Ne distingue pas un SIREN d'un SIRET tronqué : les 9 premiers chiffres d'un SIRET (14 chiffres) sont numériquement identiques au SIREN de l'entreprise, donc structurellement indiscernables d'un vrai SIREN sans connaître le contexte de la saisie.