Me gustaría separar esto en Javascript y crear variables infos1, infos2...
Así que necesito una función para separar toda la información.
<option value="[infos1][infos2][infos3][infos4]"></option> var InfosInitial = $('#insert').find("option:selected").val();var infos1 = ?;
var infos2 = ?;
Gracias de antemano !
Puede usar Regex para hacer esto. Usaremos la función String.match() en este ejemplo. Debería verse algo como esto:
const InfosInitial = '[infos1][infos2][infos3][infos4]'; const info = InfosInitial.match(/(?<=\[)(.*?)(?=\])/gm); const infos1 = info[0]; const infos2 = info[1]; const infos3 = info[2]; const infos4 = info[3]; console.log(`${infos1}\n${infos2}\n${infos3}\n${infos4}`); console.log('As an array:', info);Además, solo digo que tener todo en 4 variables diferentes es ineficiente. Entonces deberías usar la matriz en su lugar.
esto es realmente raro, pero puede agregar nuevas variables al elemento de la ventana como este
window['myVar'] = 'Hello, world!' ahora puede llamar y redefinir myVar simplemente haciendo esto
console.log(myVar) // 'Hello, world!' myVar = 42069 console.log(myVar) // 42069sabiendo esto, puede crear una función donde obtenga el atributo 'valor'
y divídalo entre ] y [ con String.split() elimine los corchetes y recorra los restos
tu pregunta no me queda clara, pero supongo que esto es lo que quieres.
var InfosInitial = "[infos1][infos2][infos3][infos4]"; Array.from(InfosInitial.matchAll(/\[([^\]]*)\]/g)).forEach(value => { console.log("all = " + value[0] + ", value = " + value[1]); })