Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
Pregunta de expresión regular que incluye diferentes letras

Estoy tratando de averiguar Regex que solo aceptará las siguientes cadenas.

  • 7 y 8 números: '1234567' y '12345678'

  • 7 y 8 números que empiezan por T: 'T234567' y 'T2345678'

  • 7 y 8 números que empiezan con D: 'D234567' y 'D2345678'

  • 7 y 8 números que comienzan con TD: 'TD34567' y 'TD345678'

Regex que tengo es:

 /^(T|[0-9]){1}(D|[0-9]){1}([0-9]){5,6}$/

pero no está pasando mi prueba de unidad para 'D234567' y 'D2345678'

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Podrías escribir el patrón como:

 ^(?:\d{7,8}|[TD]\d{6,7}|TD\d{5,6})$

Explicación

  • ^ Comienzo de cadena
  • (?: Grupo de no captura para las alternativas
    • \d{7,8} Combina 7-8 dígitos
    • | O
    • [TD]\d{6,7} Coincide con T o D y 6-7 dígitos
    • | O
    • TD\d{5,6} Partido TD y 5-6 dígitos
  • ) Cerrar el grupo de no captura
  • $ Fin de la cadena

Demostración de expresiones regulares .

about 4 years ago · Santiago Trujillo Denunciar

0

const r = /^(?=.{7,8}$)T?D?\d+$/

es la solución más sencilla. Aquí hay un desglose de lo que sucede:

 import {lookAhead, maybe, sequence, suffix} from "compose-regexp" const r = sequence( // start anchor /^/, // are there exactly 7 or 8 characters before the end? lookAhead(suffix([7,8], /./), /$/), // optionally match a 'T' maybe('T'), // optionally match a 'D' maybe('D'), // match numbers until the end suffix('+', /\d/), /$/ )

Puedes probarlo aquí

Con muchas pruebas.

about 4 years ago · Santiago Trujillo Denunciar

0

De hecho, lo descubrí justo después de publicar esta pregunta. Simplemente agregue |D después de T| así como esto

/^(T|D|[0-9]){1}(D|[0-9]){1}([0-9]){5,6}$/

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda