Tengo un problema gordo y es que no tengo ni idea ya de cómo hacerlo, lo intenté de mil maneras distintas. El caso es que tengo unos campos en una cadena de texto del uno al veinte tal que así:
{%c1%}
{%c2%}
....
{%c20%}
Necesito reemplazar cada uno de esos campos por el valor de unos input de texto con el mismo id (c1, c2... c20).
Lo que tengo hecho es lo siguiente:
Código Javascript:
Ver original
textosplan[2]=textosplan[2].replace(/\{\%\w+\%\}/g, document.getElementById("cmpc1").value);
Funciona bien, pero no soy capaz de poner que getElementById("cmpc1") sea como getElementById("cmp"+coincidencia).
Lo he intentado con bucles, pero no acepta variables la expresión regular y no vale (o si que acepta y no encontré como hacerlo).
Encontré en una página que las coincidencias de las expresiones regulares en el método replace() se expresan ordenadamente con dólares: $1, $2. ... etc. Pero a mí no me funciona.
Alguien tiene alguna idea?
Mil gracias por adelantado.
ante ese comentario lo unico que puedo hacer es reirme. no desesperes, estas cerca. el problema es que estas generando un string que no concuerda con la ID. es decir, la variable captura cadenas como c1, c2, c3 y luego la concatenas con "cmpc" por tanto el resultado es cmpcc1. en rojo tienes el string literal y en verde tienes el valor de la variable. ¿es este el string que querias formar? supongo que tienes una c de mas. ya tu sabras lo que tienes que hacer.

