Digamos que tengo una cadena como esa
dany es? ¿James es? allen es?
Y quiero reemplazarlo por
Danny es genial James es maravilloso Allen es magnífico
¿Cómo puedo usar replace para hacerlo?
Estoy tratando de hacer algo como
string.replace(/\?/g, 'great ').replace(/\?/g, 'wonderful ').replace(/\?/g, 'magnificent');pero solo obtengo:
Danny es genial James es genial Allen es genial
Si el caso fuera algo como:
dany es? James es # Allen es $
string.replace(/\?/g, 'great ').replace(/\#/g, 'wonderful ').replace(/\$/g, 'magnificent');Funcionaría como se esperaba, pero dado que es el mismo personaje, no funciona.
¿Hay una manera más ordenada de lograr esto que hacer algo como a continuación?
string = string.replace(/\?/g, 'great ') string = string.replace(/\?/g, 'wonderful ') string = string.replace(/\?/g, 'magnificent');Está utilizando la función de reemplazo con una expresión regular con la opción /g (que significa: "global"), lo que significa que reemplazará el '?' en todas partes de la cadena.
Para reemplazar solo una ocurrencia de '?' a la vez, solo use una cadena normal para encontrar, por ejemplo: string.replace('?', 'great')
Entonces, tu ejemplo completo sería:
string = string.replace('?', 'great ') string = string.replace('?', 'wonderful ') string = string.replace('?', 'magnificent');