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

116
Vistas
Método de reemplazo de JavaScript para valores de búsqueda múltiples/diferentes y valores nuevos

Lo más cercano que he encontrado para hablar sobre lo que quiero hacer es este hilo .

JavaScript tiene un método de reemplazo muy bueno: string.replace(searchValue, newValue)

Si tengo una cadena como esta: var str = '/by-the-pound/c/252' y quiero reemplazar el '/' con cadenas vacías (básicamente eliminándolas), puedo hacer algo como esto: str.replace(/[/]/g, "");

y si quiero reemplazar 'c' con '-', puedo hacer esto: str.replace(/c/g, "-");

Entiendo que podemos encadenar esto así: str.replace(/[/]/g, "").replace(/c/g, "-"); y nos dará esto: 'by-the-pound-252'

Pero, ¿y si tuviera una cadena muy larga y quisiera reemplazar, digamos, 10 caracteres diferentes, con 10 valores diferentes? Esa sería una línea de código muy larga y encadenada con 10 métodos .replace .

TL;RD

¿Hay alguna manera de usar un .replace pero tener múltiples searchValue's y newValue's ?

He intentado algo como esto (y muchos más), pero nada ha funcionado:

 str.replace(/[/]|[c]/g, ""|"-") str.replace(/[/]|[c]/g, "","-"); str.replace(/[/],[c]/g, "","-"); str.replace(/[/|c]/g, [""|"-"]); str.replace(/[/|c]/g, "","-");

¿Por qué quiero hacer esto? Por brevedad, por código limpio/fácil de leer, etc...

Gracias por tu tiempo.

ACTUALIZACIÓN: La respuesta a mi pregunta es probablemente No. Probablemente no haya una manera de hacer lo que pregunté, que fue: ¿Hay alguna manera de usar un .replace pero tener múltiples searchValue y newValue? Revisé todos los documentos que pude encontrar, pero no vi ningún ejemplo funcional de eso. Me doy cuenta de que hay diferentes maneras de lograr lo que quiero hacer. Pude crear una función, por ejemplo, usando una matriz de pares como sugirió @DaveNewton (similar a lo que han hecho @MauroAguilar y @Ryan), y funcionó bien, pero solo quería saber si podría hacer esto. en una sola línea. Probablemente una publicación desperdiciada. Mods siéntase libre de eliminar. Gracias a todos por tomarse el tiempo.

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

0

No veo ningún problema con el encadenamiento, pero si lo que desea es algún tipo de utilidad que automatice este proceso, entonces podría escribir una función de utilidad simple como esta:

 const replacer = (str, values) => values.reduce((fstr, [val, rep]) => fstr.replace(val, rep), str); 

 const replacer = (str, values) => values.reduce((fstr, [val, rep]) => fstr.replace(val, rep), str); const str = 'Peter Piper Picked a Peck of pickled peppers'; const result = replacer(str, [ [/p/ig, 'B'], [/\s/g, '-'], [/-/g, '/'] ]); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Haría una lista de reemplazos que se pueden agregar y repetir.

 export interface StringReplacement { find: string; replace: string; }

Crear una lista de StringReplacement

 const stringReplacements: StringReplacement[] = [ { find: 'val1', replace: 'val2' }, { find: 'val5', replace: 'val6' } ]

Luego, cuando estés listo para transformar

 const inputString = 'this val1 is the val5 input string.'; stringReplacements.forEach(replacement => inputString = inputString.replace(replacement.find, replacement.replace) );
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