Regex pour le numéro de sécurité sociale américain

Utilisez /^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/ pour vérifier qu’une chaîne entière correspond à un numéro de sécurité sociale américain valide. Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l’ouvrir dans le testeur de regex avec les exemples préchargés.

Mis à jour le

/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/
Ouvrir dans le testeur de regex
EntréeRésultat
123-45-6789✓ Correspondance
219-09-9999✓ Correspondance
000-12-3456✗ Aucune correspondance
666-12-3456✗ Aucune correspondance
123-00-4567✗ Aucune correspondance
123456789✗ Aucune correspondance
900-12-3456✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
(?!000|666|9\d\d)\d{3}Numéro de zone : trois chiffres, mais jamais 000, 666 ni 900 à 999
(?!00)\d{2}Numéro de groupe : jamais 00
(?!0000)\d{4}Numéro de série : jamais 0000
-Tirets entre les parties

Exemples de code

JavaScript

const re = /^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}', value))

PHP

preg_match('/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/', $value) === 1;

Remarques et limites

Les assertions négatives anticipées excluent les plages de numéros que la Social Security Administration n’attribue jamais. Traitez les SSN comme des données sensibles : masquez-les dans les journaux et les interfaces.

Questions fréquentes

Quelle est la regex pour le numéro de sécurité sociale américain ?
/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour savoir ce que fait chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 123-45-6789, 219-09-9999. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d’exemple se chargent automatiquement, et les correspondances sont surlignées pendant que vous modifiez le texte.