Tengo una cadena que contiene algunas comillas simples, quiero reemplazar todas las comillas simples presentes dentro de la cadena con comillas dobles, excluyendo las comillas simples preestablecidas dentro de {} [] () . Cualquier puntero será realmente útil para intentar resolver esto usando JAVASCRIPT.
Cadena real:
let str =`name:'John' {hobbies:'Playing'} , (age: '45')`; console.log(str);Rendimiento esperado:
nombre:"John" {pasatiempos:'Jugar'} , (edad: '45')
Echa un vistazo a .replaceAll .
Para reemplazar solo las comillas simples alrededor de John , probablemente querrá usar un poco de Regex.
let str = "name:'John' {hobbies:'Playing'} , (age: '45')"; str = str.replaceAll(/(name:)'([^']+?)'/g, "$1\"$2\""); console.log(str); // name:"John" {hobbies:'Playing'} , (age: '45')Puede usar el método str.replaceAll("'", '"');
let braceTracker = 0; // convert string into an array of string using spread operator // alternatively you can do str.split("") let str = [..."name:'John' {hobbies:'Playing'} , (age: '45')"]; for (let x = 0; x < str.length; x++) { if(str[x] === "[" || str[x] === "{" || str[x] === "(") braceTracker++; else if(str[x] === "]" || str[x] === "}" || str[x] === ")") braceTracker--; else if(str[x] === "'" && braceTracker === 0) str[x] = "\""; } console.log(str.join("")); // output : name:"John" {hobbies:'Playing'} , (age: '45')