Как я могу получить некоторые части в строке как группы в JavaScript? - PullRequest
0 голосов
/ 04 марта 2019

Я хотел бы получить некоторые части в виде группы в моей строке с помощью регулярных выражений.Я пробовал много решений, но они не работали.

Часть всей моей строки:

...

{"name":"AE102-Fundamentals of Automotive Engineering","short":"AE102","color":"#00C0FF","picture":"",
"timeoff":[
[
["1"]]],"id":"-696","picture_url":""},

{"name":"AE202 lab-Fuels and Combustion lab","short":"AE202 lab","color":"#FF5050","picture":"",
"timeoff":[
[
["1"]]],"id":"-697","picture_url":""},

{"name":"AE202-Fuels and Combustion","short":"AE202","color":"#CCFFFF","picture":"",
"timeoff":[
[
["1"]]],"id":"-698","picture_url":""},

...

Вывод должен быть таким:

[
   {"name":"...","short":"...","id":"..."},
   {"name":"...","short":"...","id":"..."},
   ....
]

Кроме того, платформа является узлом js.

1 Ответ

0 голосов
/ 04 марта 2019

Не используйте для этого регулярное выражение - вместо этого проанализируйте JSON с JSON.parse и используйте .map, чтобы извлечь нужные свойства из каждой строки:

function parse() {
  const obj = JSON.parse(input);
  const newRows = obj.map(({ name, short, id }) => ({ name, short, id }));
  console.log(newRows);
}

const input = `[{
    "name": "AE102-Fundamentals of Automotive Engineering",
    "short": "AE102",
    "color": "#00C0FF",
    "picture": "",
    "timeoff": [
      [
        ["1"]
      ]
    ],
    "id": "-696",
    "picture_url": ""
  },

  {
    "name": "AE202 lab-Fuels and Combustion lab",
    "short": "AE202 lab",
    "color": "#FF5050",
    "picture": "",
    "timeoff": [
      [
        ["1"]
      ]
    ],
    "id": "-697",
    "picture_url": ""
  },

  {
    "name": "AE202-Fuels and Combustion",
    "short": "AE202",
    "color": "#CCFFFF",
    "picture": "",
    "timeoff": [
      [
        ["1"]
      ]
    ],
    "id": "-698",
    "picture_url": ""
  }
]`;
parse();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...