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

77
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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