Reputation: 37
I want to combine these three regular expressions, but I dont know if its possible, because the result is different.
What I really want is to delete all space before and after of all strings in an array or object. Also, I need to delete two or more spaces between a string.
Actually the code does the necessary to get expected result, but I want to shorten the code.
let persona = {
name: 'Tomas Torres Caleron',
edad: 26
},
casa = {
direccion: ' aa',
comuna: 'las condes '
},
persona1 = {
name: 'Catalina Zaror "" Letelier',
edad: 24
},
casa1 = {
direccion: ' aa',
comuna: ' las condes '
},
empleado1 = {
persona: persona,
casa: casa
},
empleado2 = {
persona: persona1,
casa: casa1
},
empleados = [empleado1, empleado2];
console.log(JSON.parse(JSON.stringify(empleados).replace(/"\s+|\s+"/g, '"').replace(/[ ]{2,}/g, ' ').replace(/\\"/g, '')));
This is the expected result:
{
"empleados": [{
"persona": {
"name": "Tomas Torres Caleron",
"edad": 26
},
"casa": {
"direccion": "aa",
"comuna": "las condes"
}
},
{
"persona": {
"name": "Catalina Zaror Letelier",
"edad": 24
},
"casa": {
"direccion": "aa",
"comuna": "las condes"
}
}
]
}
Upvotes: 0
Views: 76
Reputation: 20039
Using object initializer
JSON.stringify({empleados})
let persona = {
name: 'Tomas Torres Caleron',
edad: 26
},
casa = {
direccion: ' aa',
comuna: 'las condes '
},
persona1 = {
name: 'Catalina Zaror "" Letelier',
edad: 24
},
casa1 = {
direccion: ' aa',
comuna: ' las condes '
},
empleado1 = {
persona: persona,
casa: casa
},
empleado2 = {
persona: persona1,
casa: casa1
},
empleados = [empleado1, empleado2];
console.log(JSON.parse(JSON.stringify({empleados}).replace(/"\s+|\s+"/g, '"').replace(/[ ]{2,}/g, ' ').replace(/\\"/g, '')));
Using JSON.stringify()
's replacer
method
JSON.stringify(value[, replacer[, space]])
Regex: https://regex101.com/r/iB4QBl/1
let persona = {
name: 'Tomas Torres Caleron',
edad: 26
},
casa = {
direccion: ' aa',
comuna: 'las condes '
},
persona1 = {
name: 'Catalina Zaror "" Letelier',
edad: 24
},
casa1 = {
direccion: ' aa',
comuna: ' las condes '
},
empleado1 = {
persona: persona,
casa: casa
},
empleado2 = {
persona: persona1,
casa: casa1
},
empleados = [empleado1, empleado2];
console.log(JSON.parse(JSON.stringify({empleados}, (key, value) => {
if (typeof value === 'string') {
return value.replace(/^\s+|\s+$|\"|(\s?\"+\s?|\s+)(?=\s)/g, '')
}
return value;
})))
Upvotes: 1