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

182
Views
¿Por qué esta expresión regular devuelve un carácter en lugar de una nueva línea?

Quiero insertar algo justo antes de "prueba", uso esta expresión regular y esperaba que devolvería una nueva línea pero devuelve "h", por lo que si inserto con el método de reemplazo, en realidad no insertaría antes de "prueba" como quiero: ¿dónde está el ¿error?

https://jsfiddle.net/y4qh629a/

 const test = ` blah blah test blah blah`; const regex = /[^"]\s*(?=test)/; const match = test.match(regex); alert(match)
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

La clase de caracteres negados [^"] consume un solo carácter que no sea un carácter " , en este ejemplo es el carácter h .

Si desea agregar algo antes de la coincidencia, puede usar reemplazar en su lugar o combinar el valor devuelto por la coincidencia (tenga en cuenta que la coincidencia devuelve una matriz y que la const test no se puede sobrescribir)

En este caso, puede capturar la coincidencia completa usando. En el reemplazo, use la coincidencia completa usando $& .

Tenga en cuenta que debe haber al menos un solo carácter además de " presente, que también puede ser un carácter de espacio en blanco.

 const test = ` blah blah test blah blah`; console.log(test.replace(/[^"]\s*(?=test)/, "$&[replacement]"));

Si también desea hacer coincidir la test al comienzo de la cadena:

 const test = `test here blah blah test blah blah`; console.log(test.replace(/(?:^|[^"])\s*(?=test)/g, "$&[replacement]"));

about 4 years ago · Juan Pablo Isaza Report

0

[^"] coincide con un solo carácter.

¿Quizás quieras hacer coincidir un número ilimitado de veces? Solo agrega + ae [^"]+

 const regex = /[^"]+\s*(?=test)/;

Violín

about 4 years ago · Juan Pablo Isaza Report

0

Use una mirada negativa hacia atrás en su lugar:

(?!<=")\s*(?=test)

 const test = ` blah blah test blah blah`; const regex = /(?!<=")\s*(?=test)/; const match = test.match(regex); console.log(match)

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!