Как разбить сложную строку на массив сохраняя имена значений

Имеется строка:

name: "a.1=Name1, b=Name2, c.11=Name3"

Подскажите как разбить сроку name на массив, пример:

name: [
a.1: Name1,
b: Name2,
c.11: Name3
]

Ответы (1 шт):

Автор решения: Alexander Lonberg

Только это не массив, а объект

let name = "a.1=Name1, b=Name2, c.11=Name3"

console.log(
  Object.fromEntries(
    name.split(/[,\s]+/).map((v) => v.split('='))
  )
)

Дополнение для коммента: почти как и выше.

Если точно известно, что запятая используется только в разделении свойств - используем ее как обязательный делитель и добавляем после нее любое кол-во пробельных необязательных - это при split-е сразу вырежет лишние пробелы и не установит их перед именами свойств.

/,\s*/
",  foo" => [, "foo"]
/,/ - без \s 
",  foo" => [, "  foo"]

let name = 'SN=Фамилия, G=Имя Отчество, CN="ООО "РИК"", T=Генеральный директор, O="ООО "РИК"", OU=0, STREET=ул. Улица д. 7, L=г. Город, S=50 Московская область, C=RU, ИНН=001633399240, ОГРН=5083155076736, СНИЛС=44667182819, [email protected]';

console.log(
  Object.fromEntries(
    name.split(/,\s*/).map((v) => v.split('='))
  )
)

→ Ссылка