Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Regex solo permite guiones entre caracteres

Tengo esta expresión regular ^[A-ZÆØÅa-zæøå\ \-]{2,50}$ para validar nombres. ¿Cómo puedo hacer que permita solo un "-". Quiero que acepte nombres como este:

 Janet Smith-Johnson Mary-Ann Johnson Sara Mary John-Smith Sara Johnson Sara Mary Johnson

Pero no puede permitir nombres que comiencen con - y terminen con - . Me gusta:

 -Janet Mary Mary-
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede hacer coincidir su clase de personaje sin espacios, luego, opcionalmente, repetir un espacio y nuevamente usar la clase de personaje sin espacios.

Luego, opcionalmente, haga coincidir - y el mismo mecanismo nuevamente.

 ^(?=.{2,50}$)[A-ZÆØÅa-zæøå]+(?: [A-ZÆØÅa-zæøå]+)*(?:-[A-ZÆØÅa-zæøå]+(?: [A-ZÆØÅa-zæøå]+)*)?$

El patrón en partes coincide con:

  • ^ Comienzo de cadena
  • (?=.{2,50}$) Afirmar 2 - 50 caracteres
  • [A-ZÆØÅa-zæøå]+ Coincide con lo que aparece en la clase de caracteres sin espacios
  • (?: [A-ZÆØÅa-zæøå]+)* Opcionalmente repetir la clase de carácter precedida por un espacio
  • (?: Grupo de no captura para emparejar como un todo
    • -[A-ZÆØÅa-zæøå]+ Coincide con lo que aparece en la clase de caracteres sin espacios
    • (?: [A-ZÆØÅa-zæøå]+)* Opcionalmente repetir la clase de carácter precedida por un espacio
  • )? Cierre el grupo de no captura y hágalo opcional
  • $ Fin de la cadena

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Report

0

Puedes usar

 ^(?=.{2,50}$)(?!(?:.*-){2})[A-ZÆØÅa-zæøå]+(?:[- ][A-ZÆØÅa-zæøå]+)*$

Vea la demostración de expresiones regulares .

Si está utilizando la expresión regular en C# o con el indicador u en JavaScript compatible con el estándar ECMAScript 2018+, también puede hacer coincidir cualquier letra Unicode con \p{L} :

 ^(?=.{2,50}$)(?!(?:.*-){2})\p{L}+(?:[- ]\p{L}+)*$

Detalles :

  • ^ - comienzo de la cadena
  • (?=.{2,50}$) - de dos a cincuenta caracteres en la cadena permitida
  • (?!(?:.*-){2}) (o (?!(?:[^-]*-){2}) en el código real es más eficiente) - no se permiten dos guiones
  • [A-ZÆØÅa-zæøå]+ - una o más letras del conjunto ( \p{L} coincide con cualquier letra Unicode)
  • (?:[- ][A-ZÆØÅa-zæøå]+)* - cero o más secuencias de espacio o - y luego una o más letras
  • $ - final de la cadena.
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!