Como o padrão funciona
| Parte | Significado |
|---|---|
(?!000|666|9\d\d)\d{3} | Número da área: três dígitos, mas nunca 000, 666 nem 900–999 |
(?!00)\d{2} | Número do grupo: nunca 00 |
(?!0000)\d{4} | Número de série: nunca 0000 |
- | Traços entre as partes |
Exemplos de código
JavaScript
const re = /^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/;
re.test(value); // true or falsePython
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;
Notas e limitações
Lookaheads negativos excluem as faixas de números que a Social Security Administration nunca emite. Trate SSNs como dados sensíveis: mascare-os em logs e interfaces.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.