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

496
Vistas
Validación de FormControl angular con expresiones regulares: las líneas de área de texto no deben comenzar con caracteres especiales

Tengo un área de texto con un FormControl simple, que me gustaría validar a través del método Validators.pattern(). Ninguna de las nuevas líneas debe comenzar con un ? o *. Esos son todos los requisitos.

He intentado lo siguiente:

 control = new FormControl('', Validators.pattern(/^(\?|\*)$/));

Con esto, puedo validar la primera línea (funciona bien si la línea comienza con un carácter especial), pero tan pronto como presione enter, mi FormControl no será válido.

¿Cómo debo modificar la expresión regular para cumplir con los requisitos?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Dado que se trata de un área de texto, debe emular el metaescape \A que es "inicio de cadena , no línea"

 /(?<!\s)^(?![\s\S]*^[?*])/gm
  • (?<!\s)^ - detecta el inicio de la cadena
  • (?![\s\S]*^[?*]) - Delante de mí no puede haber ninguna línea que comience con un signo de interrogación o un asterisco
    • [\s\S]* - captura todo, incluso las líneas nuevas
    • ^[?*] : detecta una línea que comienza con un signo de interrogación o un asterisco

https://regex101.com/r/NacQst/1

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar

 // With a string literal where anchors are added automatically by Angular control = new FormControl('', Validators.pattern('(?![?*]).*(?:[\r\n]+(?![?*]).*)*')); // Or, with a regex literal control = new FormControl('', Validators.pattern(/^(?![?*]).*(?:[\r\n]+(?![?*]).*)*$/));

Vea la demostración de expresiones regulares . Detalles :

  • ^ - anclaje de inicio de cadena
  • (?![?*]) - no ? y * se permiten inmediatamente a la derecha de la ubicación actual
  • .* - cero o más caracteres que no sean caracteres de salto de línea tantos como sea posible
  • (?: - comienzo de un grupo que no captura:
    • [\r\n]+ - uno o más caracteres CR / LF (retorno de carro o caracteres de avance de línea)
    • (?![?*]).* - una línea que no comienza con ? ni *
  • )* - fin de grupo, cero o más ocurrencias
  • $ - final de la cadena.
about 4 years ago · Juan Pablo Isaza 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