const serialize = (form) => {
const obj = {};
const inputs = [...form.querySelectorAll('input')];
inputs.forEach((input) => {
const params = input.name.match(/(?<=\[)\S+?(?=\])|^\S+?(?=\[)/g);
const value = input.value;
params.reduce((current, param, i, arr) => {
if (!obj[param]) current[param] = {};
if (i === arr.length - 1) current[param] = value;
return current[param];
}, obj);
});
return obj;
};
- Тут я новый синтаксис использовал в regexp, чтобы не вырезать скобки, если у вас есть необходимость - можете переписать его
- Я сделал на тупую querySelector('input'), конечно ещё может быть textarea как минимум