NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validateur regex SSN en Go

Validateur regex SSN en Go

Besoin de vérifier des numéros de sécurité sociale américains (SSN) lors de la validation de formulaires ou de tests API ? Le Validateur regex SSN en Go de Qodex vous permet de contrôler instantanément les SSN par rapport aux formats standard. Associez-le à des outils comme le Générateur de noms d'utilisateur, le Générateur de numéros de téléphone ou le Générateur d'adresses pour simuler des données utilisateur réalistes lors de vos tests d'applications Go.

Validateur regex SSN en Go - Documentation

Qu'est-ce qu'une regex SSN ?

En Go (ou Golang), les expressions régulières sont gérées via le package regexp intégré, permettant aux développeurs de faire correspondre et de valider du texte avec précision.

Un numéro de sécurité sociale (SSN) américain a un format fixe : AAA-GG-SSSS, où :

  • AAA est le numéro de zone (3 chiffres)

  • GG est le numéro de groupe (2 chiffres)

  • SSSS est le numéro de série (4 chiffres)

Pour valider cette structure, la regex offre une solution simple et efficace avec le motif :

^\d{3}-\d{2}-\d{4}$

Ce motif garantit :

  • Trois chiffres

  • Suivis d'un tiret

  • Puis deux chiffres

  • Un autre tiret

  • Et quatre chiffres finaux

Accepter les SSN masqués

Il arrive de rencontrer le format avec des "X", souvent utilisé pour masquer de vrais SSN à des fins de confidentialité ou de test. Pour prendre en charge les deux formes (standard et masquée), vous pouvez utiliser :

^(\d{3}-\d{2}-\d{4}|XXX-XX-XXXX)$

Ce motif correspond soit à un SSN numérique valide, soit à la variante entièrement masquée.

Validation SSN plus précise

Bien que ce qui précède couvre la structure de base, les SSN réels ont des règles supplémentaires. Certaines valeurs sont invalides, comme les numéros de zone 000, 666, ou tout numéro commençant par 9, le numéro de groupe 00, ou le numéro de série 0000. Pour une validation plus stricte :

^(?!(000|666|9))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

Ce motif exclut ces blocs invalides tout en correspondant au format SSN.

Prise en charge des entrées flexibles

Si vous souhaitez autoriser les tirets optionnels ou prendre en charge les "x" en majuscule et en minuscule dans les SSN masqués, vous pouvez utiliser :

^(\d{3}-?\d{2}-?\d{4}|[Xx]{3}-?[Xx]{2}-?[Xx]{4})$

Ou simplifiez en ajoutant le drapeau insensible à la casse si votre langage le supporte.

Résumé
  • Utilisez ^\d{3}-\d{2}-\d{4}$ pour les SSN numériques stricts.

  • Utilisez ^(\d{3}-\d{2}-\d{4}|[Xx]{3}-[Xx]{2}-[Xx]{4})$ pour autoriser les formes masquées.

  • Pour une validation plus rigoureuse, utilisez le motif avec les assertions négatives.

  • Adaptez selon les besoins de masquage et de flexibilité de votre application.

Exemples d'entrées

Voici quelques exemples d'entrées de type SSN et leurs résultats de correspondance :

  • ✔️ Format SSN valide

  • ✔️ Valide, mais avec des espaces à la place des tirets

  • ✔️ Format SSN valide

  • ❌ Invalide, contient des lettres

  • ✔️ Valide, mais peut tomber dans des plages SSN restreintes

  • ✔️ Motif valide, mais pas un vrai SSN

  • ❌ Invalide, le numéro de zone ne peut pas être 000

Comprendre les drapeaux regex

Voici un référentiel rapide des drapeaux les plus courants :

  • g (global) : Recherche toutes les correspondances dans le texte, pas seulement la première.

  • i (insensible à la casse) : Traite les lettres majuscules et minuscules comme équivalentes.

  • m (multiligne) : Modifie le comportement de ^ et $ pour qu'ils correspondent au début et à la fin de chaque ligne.

  • s (dotAll) : Permet au point (.) de correspondre aux caractères de nouvelle ligne.

  • u (unicode) : Active la correspondance Unicode complète.

  • y (sticky) : Ne correspond qu'à partir du dernier index de correspondance.

Comment les SSN invalides sont bloqués

  • Pas de groupes entièrement nuls : La regex n'accepte pas les SSN où un groupe entier est à zéro.

  • Pas de début 666 : Tout SSN commençant par 666 est toujours rejeté.

  • Pas de plages 900 à 999 : Les SSN commençant par 9 sont réservés et non valides.

Fonctionnalités et avantages clés

  • Spécifique au format : Applique strictement le format SSN américain.

  • Validation instantanée : Fonctionne immédiatement en Go avec regexp.MustCompile.

  • Test sécurisé : Évitez d'utiliser de vraies données, testez vos systèmes avec des valeurs fictives.

  • Regex réutilisable : Intégrez facilement ce motif dans votre code Go.

  • Compatible avec plusieurs outils : Fonctionne parfaitement avec le Générateur UUID, le Générateur d'adresse MAC et le Validateur regex de numéro de téléphone en Go.

Exemple de code en Go

package main

import ( "fmt" "regexp" )

func isValidSSN(ssn string) bool { // Regex for U.S. SSN: 3 digits - 2 digits - 4 digits var ssnRegex = regexp.MustCompile(^\d{3}-\d{2}-\d{4}$) return ssnRegex.MatchString(ssn) }

func main() { testSSN := "123-45-6789" fmt.Printf("Is '%s' a valid SSN? %t\n", testSSN, isValidSSN(testSSN)) }

Conseils avancés pour l'utilisation de la regex SSN en Go

  • Utilisez des ancres pour une correspondance complète : Encadrez toujours votre regex avec ^ et $ pour vous assurer que la chaîne entière est validée.

  • Évitez les vraies données dans les tests : N'utilisez jamais de vrais SSN dans les environnements de test. Simulez-les avec des outils comme le Générateur de noms d'utilisateur ou le Générateur d'adresses.

  • Précompilez pour la performance : Utilisez regexp.MustCompile() en dehors des boucles pour précompiler votre regex et améliorer les performances.

  • Validez le format, pas l'identité : La regex vérifie uniquement la structure. Pour valider de vrais SSN, intégrez une API de vérification.

  • Utilisez les journaux pour le débogage : Lors du test de votre logique regex Go, ajoutez des journaux pour suivre les correspondances et les non-correspondances.

Cas d'usage courants

  • Validation de formulaires : Assurez-vous que les utilisateurs saisissent les SSN dans le bon format.

  • Systèmes d'embarquement : Vérifiez l'identification lors de l'inscription des utilisateurs.

  • Nettoyage des données : Normalisez les champs SSN dans votre base de données.

  • Systèmes de conformité : Appliquez la validation de format pour les workflows sensibles à la confidentialité.

Combiner avec ces outils

Regex pour d'autres langages

Frequently Asked Questions

Cette regex peut-elle vérifier si un SSN est réel ?

Non, elle vérifie uniquement si le SSN est correctement formaté, pas s'il est émis ou valide.

Pourquoi utiliser la regex pour la validation SSN en Go ?

La regex offre un moyen simple et efficace d'appliquer des règles de formatage sans écrire de logique personnalisée.

Que se passe-t-il si quelqu'un saisit un SSN sans tirets ?

Le motif actuel exige des tirets. Vous pouvez le modifier pour accepter des chiffres simples si nécessaire.

Est-il sûr de stocker des SSN après les avoir validés ?

Vous devriez stocker les SSN de manière sécurisée, de préférence chiffrés. La validation n'implique pas la sécurité du stockage.

Peut-on l'utiliser dans des systèmes de production ?

Oui, mais il doit faire partie d'une stratégie de validation et de sécurité plus large, et non l'unique vérification.

Testez vos API dès aujourd'hui !

Rédigez en français courant, Qodex génère des tests sécurisés et prêts à l'exécution.