
Validador SSN Regex en Javascript
Valide fácilmente SSN de EE. UU. usando nuestro Probador Regex de JavaScript. Esta herramienta garantiza que su entrada siga el formato estándar XXX-XX-XXXX. Ya sea que esté creando flujos de incorporación seguros o limpiando datos de formularios, combínela con nuestro Codificador Base64 para proteger información sensible, o convierta archivos en lotes usando el Convertidor CSV a JSON. Rápido, preciso y perfecto para desarrolladores que manejan datos de identidad.
Validador SSN Regex en Javascript - Documentación
¿Qué es un SSN Regex?
En EE. UU., un Número de Seguro Social (SSN) es un número de 9 dígitos con formato XXX-XX-XXXX. Validar este formato es fundamental en aplicaciones donde se requiere verificación de identidad o precisión en la entrada de datos.
Una expresión regular (regex) ayuda a garantizar que el formato sea correcto antes de realizar cualquier operación sensible.
Patrón SSN Regex Común
/^\d{3}-\d{2}-\d{4}$/Qué Hace Este Patrón:
^\d{3}: Comienza con exactamente 3 dígitos-: Un guion\d{2}: Seguido de 2 dígitos-: Otro guion\d{4}$: Termina con 4 dígitos
SSN Válido: 123-45-6789
SSN Inválido: 12-3456-789 o 123456789
Un Regex SSN Más Preciso
Aunque el patrón anterior coincide con el formato SSN estándar, no detecta todas las posibilidades inválidas. Ciertas combinaciones, como números de área que comienzan con 000, 666 o 9, o grupos como 00 o 0000, no son válidos para SSN reales.
Si necesita una verificación más estricta, considere este patrón:
^(?!(0006669))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$
Lo Que Mejora Aquí:
Garantiza que el número de área (los primeros tres dígitos) no sea 000, 666 ni ningún número que comience con 9.
El número de grupo (los dos dígitos del medio) no puede ser 00.
El número de serie (los últimos cuatro dígitos) no puede ser 0000.
Esta capa adicional ayuda a eliminar los SSN obviamente inválidos, aunque incluso el regex más robusto no puede garantizar que el número esté oficialmente asignado a una persona real.
Un Patrón Más Flexible para Formatos Personalizados
Si desea un regex que coincida con cualquier agrupación de caracteres que no sean guiones siguiendo la división familiar 3-2-4 (sin requerir dígitos), puede ajustar el patrón así:
Cómo Funciona Este Patrón:
^[^-]{3}: Comienza con exactamente 3 caracteres que no sean guiones-?: Un guion opcional[^-]{2}: A continuación, 2 caracteres que no sean guiones-?: Otro guion opcional[^-]{4}$: Finalmente, 4 caracteres que no sean guiones
Esto es útil si trabaja con códigos o IDs, como ABC-DE-1234 o XyZ12aBcd, que no son estrictamente numéricos pero siguen la estructura 3-2-4 (con o sin guiones).
Coincidencia con Formatos SSN Numéricos y Enmascarados
Si desea que su regex acepte tanto SSN numéricos estándar como aquellos que usan caracteres 'X' para enmascaramiento (como XXX-XX-XXXX), simplemente expanda un poco su patrón.
Patrón Regex Actualizado
Qué Hace Este Patrón Actualizado:
\d{3}-\d{2}-\d{4}: Coincide con tres dígitos, un guion, dos dígitos, un guion y cuatro dígitos, igual que antes.[Xx]{3}-[Xx]{2}-[Xx]{4}: Coincide con tres Xs (mayúsculas o minúsculas), un guion, dos Xs, un guion y cuatro Xs.El símbolo de barra vertical permite coincidir con la versión numérica o la enmascarada, pero no con una mezcla de ambas.
^y$coinciden con el inicio y el final de la cadena para garantizar que se valide el SSN completo.
Ejemplos
SSN Numérico Válido: 123-45-6789
SSN Enmascarado Válido: XXX-XX-XXXX o xxx-xx-xxxx
Mezcla Inválida: 123-XX-6789
Patrón Estricto: Solo Permitir 123-45-6789 o XXX-XX-XXXX
Si necesita un regex que coincida únicamente con los SSN específicos 123-45-6789 o XXX-XX-XXXX, el operador de barra vertical actúa como un "o", permitiendo solo esos dos formatos exactos. Cualquier entrada que no sea esos dos formatos será rechazada.
Combinar Múltiples Formatos SSN con Alternancia
Si necesita aceptar tanto SSN estándar (solo números) como formatos de marcador de posición (como todo Xs), la alternancia le permite hacer coincidir uno u otro patrón usando el símbolo de barra vertical.
Por ejemplo, para permitir:
SSN numéricos estándar:
123-45-6789SSN de marcador de posición:
XXX-XX-XXXX
Puede combinarlos en un único patrón. Puede adaptar este patrón adicionalmente para permitir flexibilidad, como coincidir con x en minúsculas con [Xx], o usar la bandera i para coincidencia sin distinción de mayúsculas/minúsculas si su implementación de regex lo admite.
Permitir Todos los Dígitos o Todas las Xs (Pero No Mezclados) en SSN Regex
Si desea que su entrada SSN acepte la versión estándar con todos los dígitos (123-45-6789) o una versión enmascarada usando solo Xs (XXX-XX-XXXX), pero nunca una mezcla de los dos, use el operador de barra vertical con grupos para cada patrón:
Desglose del Regex
El primer patrón solo coincide con dígitos en el formato SSN:
^\d{3}-\d{2}-\d{4}$El segundo patrón solo coincide con Xs (sin distinción de mayúsculas/minúsculas), mismo formato:
^[Xx]{3}-[Xx]{2}-[Xx]{4}$
¿Qué Hace Esto?
Solo dígitos permitidos:
123-45-6789Solo Xs permitidas:
XXX-XX-XXXX(acepta tanto X mayúsculas como minúsculas)Sin mezcla: Patrones como
12X-4X-6789no coincidirán
Esto mantiene la entrada consistente y segura, especialmente para formularios que enmascaran información sensible.
Validación de SSN: Más Allá de lo Básico
Aunque coincidir con el formato XXX-XX-XXXX es un buen punto de partida, un SSN verdaderamente válido también debe cumplir algunos criterios más específicos:
Solo 9 Dígitos: El SSN debe tener exactamente 9 dígitos, ni más ni menos.
Con Guiones en 3 Partes: El número siempre se divide en tres partes mediante guiones: la primera parte (3 dígitos), la segunda parte (2 dígitos) y la tercera parte (4 dígitos).
Restricciones de la Primera Parte: Los primeros tres dígitos no pueden ser 000, 666, ni ningún número en el rango 900-999.
Rango de la Segunda Parte: Los dos dígitos del medio deben estar entre 01 y 99; el valor 00 no es válido.
Rango de la Tercera Parte: Los últimos cuatro dígitos deben estar entre 0001 y 9999; el valor 0000 no es válido.
Consideraciones de Rendimiento
Al validar un SSN con este patrón regex, el proceso examina cada carácter de la cadena de entrada una vez, lo que hace que la complejidad temporal sea lineal, O(N), donde N es el número de caracteres. Los requisitos de espacio son mínimos, ya que el motor regex no necesita memoria adicional proporcional al tamaño de la entrada. En resumen, obtiene una validación eficiente tanto en velocidad como en uso de memoria.
Cómo Validar SSN en JavaScript
Aquí hay un ejemplo completo de código en JavaScript:
function isValidSSN(ssn) { const ssnRegex = /^\d{3}-\d{2}-\d{4}$/; return ssnRegex.test(ssn); }
// Example usage: console.log(isValidSSN("123-45-6789")); // true console.log(isValidSSN("123456789")); // false
Cómo Validar SSN en Python
¿Necesita garantizar que los SSN cumplan con el formato adecuado en su aplicación Python? Aquí hay un enfoque sencillo usando expresiones regulares:
import re
def is_valid_ssn(ssn): pattern = r"^(?!6660009\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$" return bool(re.match(pattern, ssn))
Cómo funciona:
^(?!6660009\d{2})\d{3}: El SSN no puede comenzar con 666, 000 ni ningún número entre 900-999.-(?!00)\d{2}: Los dos dígitos del medio no pueden ser 00.-(?!0000)\d{4}$: Los últimos cuatro dígitos no pueden ser 0000.
Ejemplos:
print(is_valid_ssn("856-45-6789")) # True - SSN valido
print(is_valid_ssn("000-45-6789")) # False - invalido, bloque inicial no permitido
print(is_valid_ssn("856-452-6789")) # False - formato incorrecto
print(is_valid_ssn("856-45-0000")) # False - bloque final no permitidoCómo Validar SSN con Regex en Java
Al igual que en JavaScript, también puede usar una expresión regular en Java para verificar formatos SSN de manera eficiente:
import java.util.regex.Pattern;public class SSNValidator { // Pattern blocks obviously invalid ranges (000, 666, 900-999 in the first group; 00 in the middle; 0000 at the end) private static final Pattern SSN_REGEX = Pattern.compile( "^(?!6660009\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$" );
public static boolean isValidSSN(String ssn) { if (ssn == null) return false; return SSN_REGEX.matcher(ssn).matches(); } // Example usage public static void main(String[] args) { System.out.println(isValidSSN("856-45-6789")); // true System.out.println(isValidSSN("000-45-6789")); // false System.out.println(isValidSSN("856-452-6789")); // false System.out.println(isValidSSN("856-45-0000")); // false }
}
¿Dónde Se Puede Usar SSN Regex?
Incorporación de Usuarios: Garantice que los usuarios ingresen SSN válidos en aplicaciones financieras o de RR. HH.
Integridad de la Base de Datos: Detecte errores de formato antes de guardar en su base de datos.
Validación de Formularios: Bloquee envíos que no sigan la estructura SSN esperada.
Use nuestro Probador Regex de JavaScript para experimentar con variaciones o crear patrones personalizados.
Cómo Validar SSN en C#
Si trabaja con .NET o C#, también puede usar expresiones regulares para aplicar el formato SSN correcto y eliminar números de marcador de posición comunes:
using System.Text.RegularExpressions;
public static bool IsValidSSN(string ssn) { // This regex: // - Prevents area numbers 666, 000, or anything starting with 9 // - Ensures group (middle) isn't 00, and serial (last four) isn't 0000 var pattern = @"^(?!6660009\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$"; return Regex.IsMatch(ssn, pattern); }
Ejemplo de uso:
var testSSNs = new[] { "856-45-6789", "000-45-6789", "856-452-6789", "856-45-0000" };
foreach (var s in testSSNs)
{
Console.WriteLine(IsValidSSN(s)); // Prints True or False
}"856-45-6789"- Válido (True)"000-45-6789"- Inválido (el área no puede ser 000)"856-452-6789"- Inválido (mal formato)"856-45-0000"- Inválido (el serial no puede ser 0000)
¿Qué Hace el Modificador i en SSN Regex?
La bandera i hace que su patrón sea insensible a mayúsculas/minúsculas. En el contexto de los SSN, podría querer permitir casos especiales donde aparezca una "X" (como en SSN enmascarados o de marcador de posición). Con el modificador i, su regex coincidiría tanto con "X" mayúscula como con "x" minúscula en cualquier parte del SSN.
Sin
i: Solo coincide con "X" mayúsculaCon
i: Coincide con "X" y "x" (por ejemplo,123-45-67x9o123-xx-xxxx)
Use el modificador i si espera o desea aceptar cualquier caso, especialmente cuando maneja datos de diferentes fuentes donde las mayúsculas/minúsculas pueden variar.
Consejos Profesionales
Use .test() para verificaciones rápidas en validación de formularios en vivo.
Evite almacenar SSN como texto plano. Use el Codificador Base64 para ofuscar valores antes de la transmisión.
Para mayor seguridad, combine la validación regex con verificaciones del lado del servidor y encriptación.
Pruebe regularmente su regex con datos simulados usando nuestro Generador de token.
Use el Convertidor CSV a JSON si valida SSN en lotes desde archivos cargados por usuarios.
Combínelo con Estas Herramientas
Probador Regex de JavaScript - Pruebe cualquier patrón regex en vivo.
Codificador Base64 - Codifique cadenas sensibles antes de enviarlas por la web.
Generador de token - Genere tokens seguros con sus reglas regex.
Convertidor CSV a JSON - Gestione grandes importaciones de SSN para validación y almacenamiento.
Frequently Asked Questions
¿Este regex garantiza que el SSN sea real?
¿Puedo usar esto para IDs internacionales?
¿Los SSN pueden tener espacios en lugar de guiones?
¿Funcionará esto para validación de formularios en tiempo real?
¿Es seguro almacenar SSN con validación regex?
Related Articles



¡Pruebe sus APIs hoy!
Escriba en español sencillo y Qodex lo convierte en pruebas seguras y listas para ejecutar.



