NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
SSN Regex Javascript Validator

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-6789

  • SSN 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-6789

  • Solo Xs permitidas: XXX-XX-XXXX (acepta tanto X mayúsculas como minúsculas)

  • Sin mezcla: Patrones como 12X-4X-6789 no 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 permitido

Có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úscula

  • Con i: Coincide con "X" y "x" (por ejemplo, 123-45-67x9 o 123-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

Frequently Asked Questions

¿Este regex garantiza que el SSN sea real?

No. Solo verifica el formato, no si el número está oficialmente emitido.

¿Puedo usar esto para IDs internacionales?

Este patrón es específico para SSN de EE. UU. Use patrones diferentes para otros países.

¿Los SSN pueden tener espacios en lugar de guiones?

No. Un SSN válido debe incluir guiones en las posiciones correctas.

¿Funcionará esto para validación de formularios en tiempo real?

Sí. Es ligero y perfecto para verificaciones del lado del cliente.

¿Es seguro almacenar SSN con validación regex?

La validación es solo el primer paso. Siempre asegure los SSN usando encriptación y controles de acceso adecuados.

¡Pruebe sus APIs hoy!

Escriba en español sencillo y Qodex lo convierte en pruebas seguras y listas para ejecutar.