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

72
Views
barras en la salida cuando se usa regex?

Este es un programa simple de encontrar y reemplazar valor; sin embargo, con cada cambio realizado viene con 2 barras. es decir (salida/valor cambiado/salida) mientras que me gustaría que fuera (salida de valor cambiado salida). ¿Cómo puedo solucionar esto? ayuda apreciada.

 function newrep() { var fid = document.getElementById('find').value; var regexp = new RegExp(fid, "gi"); var rv = document.getElementById('replace').value; var rvreg = new RegExp(rv); var inp = document.getElementById('message').value; let str2 = inp.replace(regexp, rvreg); document.getElementById("message").value = str2; }
 <main/> Message: <br /> <textarea id="message" name="message" rows="3" cols="20">Hello 202204</textarea> <span id="Message"></span> <br/><br/> Find: <br /> <input type="text" id="find" name="find" size="30"><br /> <br/><br/> Replace: <br /> <input type="text" id="replace" name="replace" size="30"><br /> <br/><br/> <button onclick="newrep()">Find and Replace</button> <br/><br/> </main>

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

0

No necesita construir una expresión regular a partir del valor de reemplazo.

 let s = "hello world" let re = "hello" let regex = new RegExp(re, "gi") let rv = new RegExp("hello") console.log("When regex is constructed:", s.replace(regex, rv)) rv = "hello" console.log("When regex is NOT constructed:", s.replace(regex, rv))

O en tu código:

 function newrep() { var fid = document.getElementById('find').value; var regexp = new RegExp(fid, "gi"); var rv = document.getElementById('replace').value; var inp = document.getElementById('message').value; let str2 = inp.replace(regexp, rv); document.getElementById("message").value = str2; }
 <main/> Message: <br /> <textarea id="message" name="message" rows="3" cols="20">Hello 202204</textarea> <span id="Message"></span> <br/><br/> Find: <br /> <input type="text" id="find" name="find" size="30"><br /> <br/><br/> Replace: <br /> <input type="text" id="replace" name="replace" size="30"><br /> <br/><br/> <button onclick="newrep()">Find and Replace</button> <br/><br/> </main>

about 4 years ago · Juan Pablo Isaza Report

0

Todavía no puedo comentar, así que pondré esto aquí. Permitir que los usuarios ingresen RegExps arbitrarios es una mala idea, ya que puede conducir a ReDOS

Siempre y cuando los usuarios ejecuten su propio RegExp en su propia entrada, está bien (en el peor de los casos, ellos mismos volverán a DOS y tendrán que volver a cargar la página cuando se congele).

Si el texto o RegExp provienen de un tercero, esto puede provocar ataques en los que un usuario malintencionado congelará la pestaña del navegador de otro usuario o su servidor (si el RegExp proporcionado por el usuario se ejecuta allí).

Además de esto, la respuesta de @anotherGatsby me parece buena.

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!