Cómo funciona el patrón
| Parte | Significado |
|---|---|
(?!000|666|9\d\d)\d{3} | Número de área: tres dígitos, pero nunca 000, 666 ni 900–999 |
(?!00)\d{2} | Número de grupo: nunca 00 |
(?!0000)\d{4} | Número de serie: nunca 0000 |
- | Guiones entre las partes |
Ejemplos 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 y limitaciones
Los lookaheads negativos descartan los rangos de números que la Administración del Seguro Social nunca asigna. Trata los SSN como datos sensibles: enmascáralos en los logs y en las interfaces.
Probador de expresiones regulares
Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.