Как разбить сложную строку на массив сохраняя имена значений
Имеется строка:
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('='))
)
)