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

Validador SSN Regex en Go

¿Necesita verificar SSN de EE. UU. durante la validación de formularios o pruebas de API? El Validador SSN Regex en Go de Qodex le ayuda a comprobar SSN contra formatos estándar de forma instantánea. Combínelo con herramientas como el Generador de Nombre de Usuario, el Generador de Números de Teléfono o el Generador de Direcciones para simular datos de usuario realistas al probar sus aplicaciones en Go.

Validador SSN Regex en Go - Documentación

¿Qué es SSN Regex?

En Go (o Golang), las expresiones regulares se gestionan mediante el paquete integrado regexp, que permite a los desarrolladores hacer coincidir y validar texto con precisión.

Un Número de Seguro Social (SSN) en EE. UU. tiene un formato fijo: AAA-GG-SSSS, donde:

  • AAA es el número de área (3 dígitos)

  • GG es el número de grupo (2 dígitos)

  • SSSS es el número de serie (4 dígitos)

Para validar esta estructura, regex ofrece una solución simple y eficiente usando el patrón:

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

Este patrón garantiza:

  • Tres dígitos

  • Seguidos de un guion

  • Luego dos dígitos

  • Otro guion

  • Y cuatro dígitos finales

Aceptar SSN Enmascarados

En ocasiones, también puede encontrar el formato con Xs, usado con frecuencia para enmascarar SSN reales por motivos de privacidad o pruebas. Para admitir ambas formas, estándar y enmascarada, puede usar:

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

Esto coincide con un SSN numérico válido o con la variante completamente enmascarada.

Validación de SSN Más Precisa

Aunque lo anterior cubre la estructura básica, los SSN del mundo real tienen reglas adicionales. Ciertos valores son inválidos, como números de área 000, 666, o cualquier número que comience con 9, número de grupo 00, o número de serie 0000. Para una validación más estricta, considere:

^(?!(0006669))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

Este patrón previene esos bloques inválidos mientras sigue coincidiendo con el formato SSN.

Soporte para Entrada Flexible

Si desea permitir guiones opcionales o admitir tanto 'x' en mayúsculas como en minúsculas en SSN enmascarados, puede usar:

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

O, para simplificar, agregue el indicador de no distinción de mayúsculas/minúsculas cuando su lenguaje lo admita.

Resumen
  • Use el patrón básico para SSN numéricos estrictos.

  • Amplíelo para permitir formas enmascaradas.

  • Para validación más robusta, use el patrón con restricciones adicionales.

  • Ajuste para enmascaramiento y flexibilidad según las necesidades de su aplicación.

Las expresiones regulares ofrecen una forma práctica de gestionar la validación de SSN, pero recuerde que las reglas de negocio pueden variar y pueden ser necesarias verificaciones adicionales según su caso de uso.

Entradas de Ejemplo

Para visualizar qué captura este regex y qué omite, aquí hay algunos ejemplos de entradas similares a SSN y sus resultados:

  • ✔️ Formato SSN válido

  • ✔️ Válido, pero con espacios en lugar de guiones

  • ✔️ Formato SSN válido

  • ❌ Inválido, contiene letras

  • ✔️ Válido, pero puede caer en rangos de SSN restringidos

  • ✔️ Patrón válido, pero no es un SSN real

  • ❌ Inválido, el número de área no puede ser 000

Esta variedad garantiza que sus pruebas puedan distinguir entre SSN correctamente formateados, errores comunes de entrada y entradas completamente inválidas.

Entendiendo las Banderas de Regex

Al trabajar con expresiones regulares en Go o JavaScript, encontrará frecuentemente banderas que modifican el comportamiento de sus patrones:

  • g (global): Busca todas las coincidencias en el texto, no solo la primera.

  • i (ignorar mayúsculas/minúsculas): Hace que la coincidencia no distinga entre mayúsculas y minúsculas.

  • m (multilínea): Cambia el comportamiento de ^ y $ para que coincidan al inicio y al final de cada línea.

  • s (dotAll): Permite que el punto (.) coincida con caracteres de nueva línea.

  • u (unicode): Habilita la coincidencia completa de Unicode.

  • y (sticky): Coincide solo en el último índice donde terminó la coincidencia anterior.

Cómo se Bloquean los SSN Inválidos

No todas las combinaciones son válidas para los SSN de EE. UU., y el patrón regex es lo suficientemente inteligente para detectar formatos inválidos comunes:

  • Sin Grupos de Solo Ceros: El regex no acepta ningún SSN donde un grupo completo sea cero, como 000, 00 o 0000.

  • Sin Inicio en 666: Cualquier SSN que comience con 666 siempre se rechaza.

  • Sin Rangos 900-999: El patrón también descarta SSN que comiencen con 900 a 999, los cuales están reservados.

Patrón para SSN Reales y Enmascarados


Si necesita aceptar tanto SSN genuinos como marcadores de posición enmascarados (usando Xs), puede expandir la expresión regular para gestionar SSN totalmente numéricos o con Xs en lugar de números. Por ejemplo:

  • Coincide con SSN estándar: ^\d{3}-\d{2}-\d{4}$

  • Coincide con SSN enmascarados: ^X{3}-X{2}-X{4}$

Para permitir cualquiera de los dos formatos, combínelos usando el operador OR en su regex.

Más Allá de la Validación Básica


Si desea que su validación sea más que una simple verificación de formato, existen reglas adicionales que constituyen un SSN verdaderamente válido. Por ejemplo, ciertos números no se emiten:

  • El número de área (AAA) no puede ser "000", "666" ni ningún valor que comience con "9".

  • El número de grupo (GG) no puede ser "00".

  • El número de serie (SSSS) no puede ser "0000".

Para capturar estas reglas adicionales, puede usar un regex más preciso:
^(?!(0006669))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

Personalizar el Regex para SSN de Prueba


A veces necesita SSN para pruebas que no usen datos reales. Muchos equipos prefieren usar marcadores de posición "X" en lugar de dígitos, como XXX-XX-XXXX. Para adaptarse a esto, puede ampliar el regex para permitir ya sea todos los dígitos o todas las Xs en cada sección:

  • Use \d{3}-\d{2}-\d{4} para coincidir con un SSN numérico estándar.

  • Use [Xx]{3}-[Xx]{2}-[Xx]{4} para coincidir con un SSN completamente con Xs (aceptando mayúsculas y minúsculas).

Importante: Para mantener su validación estricta y evitar mezclar Xs y dígitos dentro del mismo SSN, el regex debe imponer un estilo u otro, nunca una mezcla.

Características y Beneficios Principales

  • Específico del Formato: Aplica estrictamente el formato SSN de EE. UU.

  • Validación Instantánea: Funciona de inmediato en Go con regexp.MustCompile.

  • Pruebas Seguras: Evite usar datos reales; pruebe sus sistemas con valores ficticios.

  • Regex Reutilizable: Incorpore fácilmente este patrón en su base de código Go.

  • Compatible con Múltiples Herramientas: Funciona muy bien con el Generador UUID, el Generador de Dirección MAC y el Validador Regex de Número de Teléfono en Go para simulaciones completas.

Código de Ejemplo en Go

package main

import ( "fmt" "regexp" )

func isValidSSN(ssn string) bool { // Regex para SSN de EE. UU.: 3 digitos - 2 digitos - 4 digitos 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)) }

Hacer el Regex Sin Distinción de Mayúsculas/Minúsculas

Para coincidir tanto con Xs en mayúsculas como en minúsculas en SSN enmascarados, como "XXX-XX-1234" o "xxx-xx-1234", tiene dos opciones:

  • Incluya ambos casos en su patrón con [Xx] donde aparezca la máscara.

  • Use la bandera de no distinción de mayúsculas/minúsculas (i), si su contexto de regex en Go lo admite.

Para el paquete regexp de Go, deberá especificar [Xx] en el regex, ya que Go no admite una bandera de no distinción de mayúsculas/minúsculas en línea.

Consejos Profesionales para Usar SSN Regex en Go

  • Use Anclas para Coincidencia Completa: Siempre envuelva su regex con ^ y $ para garantizar que se valide la cadena completa y no solo una subcadena.

  • Evite Datos Reales en Pruebas: Nunca use SSN reales en entornos de prueba. Use herramientas como el Generador de Nombre de Usuario, el Generador de Números de Teléfono o el Generador de Direcciones para crear perfiles simulados completos.

  • Precompile para Rendimiento: Use regexp.MustCompile() fuera de bucles o funciones para precompilar su regex y mejorar el rendimiento, especialmente en aplicaciones a gran escala.

  • Valide el Formato, No la Identidad: Regex solo verifica la estructura. Para validar SSN reales, intégrelo con una API de verificación o una base de datos oficial.

  • Use Registros para Depurar: Al probar su lógica regex en Go, agregue registros para rastrear coincidencias y no coincidencias. Esto ayudará a detectar problemas de formato temprano.

Casos de Uso Comunes

  • Validación de Formularios: Garantice que los usuarios ingresen SSN en el formato correcto.

  • Sistemas de Incorporación: Verifique la identificación durante el registro de usuarios.

  • Limpieza de Datos: Limpie y estandarice los campos SSN en su base de datos.

  • Sistemas de Cumplimiento: Aplique validación de formato para flujos de trabajo sensibles a la privacidad.

Combínelo con Estas Herramientas

Use el Validador SSN con estas herramientas de Qodex para simulación y pruebas de perfil completo:

Regex para Otros Lenguajes


¿Desea probar SSN en otros lenguajes?

Frequently Asked Questions

¿Puede este regex verificar si un SSN es real?

No, solo verifica si el SSN tiene el formato correcto, no si está emitido o es válido.

¿Por qué usar regex para la validación de SSN en Go?

Regex proporciona una forma simple y eficiente de aplicar reglas de formato sin escribir lógica personalizada.

¿Qué sucede si alguien ingresa un SSN sin guiones?

El patrón actual requiere guiones. Puede modificarlo para aceptar números sin guiones si es necesario.

¿Es seguro almacenar SSN después de validarlos?

Debe almacenar los SSN de forma segura, preferiblemente encriptados. La validación no implica seguridad de almacenamiento.

¿Se puede usar en sistemas de producción?

Sí, pero debe ser parte de una estrategia de validación y seguridad más amplia, no la única verificación.

¡Pruebe sus APIs hoy!

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