Ничто не должно мешать вам просто избегать каждого не буквенно-цифрового символа:
usersString.replace(/(?=\W)/g, '\\');
Вы теряете определенную степень удобочитаемости при выполнении re.toString()
, но вы выигрываете большую простоту (и безопасность) .
Согласно ECMA-262, с одной стороны, регулярные выражения «синтаксические символы» всегда не являются алфавитно-цифровыми, так что результат является безопасным, а специальные escape-последовательности (\d
, \w
, \n
) всегда являются буквенно-цифровыми, так что не будут выдаваться ложные контрольные экраны.
Вы выполняете следующее в цикле
Object.assign (steps, {name: elements [i] .value});
blockquote>, что это в основном делает, это добавляет ключ name со значением elements [i] .value .
Метод Object.assign () используется для копирования значений всех перечисляемых собственных свойств из одного или нескольких исходных объектов в целевой объект. Он вернет целевой объект.
blockquote>Вам необходимо преобразовать шагов в массив, а затем нажать на все ключи в нем. В качестве альтернативы вы можете изменить ключ name и сделать его уникальным, хотя преобразование его в массив будет более предпочтительным.
Для массива вам нужно сделать что-то вроде этого
var steps = []; var elements = document.getElementsByTagName("input"); for (var i = 0; i < elements.length; i++) { if (elements[i].type === "radio") { steps.push({ name: elements[i].value }); } } console.log(steps);