如何合并这些正则表达式

时间:2019-08-21 15:16:32

标签: javascript regex

我想组合这三个正则表达式,但是我不知道它是否可能,因为结果不同。

我真正想要的是删除数组或对象中所有字符串之前和之后的所有空间。另外,我需要删除一个字符串之间的两个或多个空格。

实际上,代码确实可以达到预期效果,但是我想缩短代码。

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, '')));

这是预期的结果:

{
  "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"
      }
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

使用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, '')));

使用JSON.stringify()的{​​{1}}方法

  

JSON.stringify(value [,replacer [,space]])

正则表达式: https://regex101.com/r/iB4QBl/1

replacer