a += b
делает две вещи:
- Объединяет свой левый операнд (
a
) с правым (b
).(Для строк «объединяет» означает «объединяет» [объединяет]. Для чисел это означает «добавляет».) - Он помещает результат (1) в свой левый операнд (
a
).
Это означает, что то, что слева от него, должно быть чем-то, что вы можете изменить значение.Вы не можете изменить значение строкового литерала, он не может быть назначен.Так что проблема в ней:
reg += "\\" += item += "|";
// ---------^^------^^
Первый +=
там хорошо, а вторые два проблемные.Второй пытается вернуть обратно выражение reg += "\\"
, чего не может.
Вы просто хотели +
там:
reg += "\\" + item + "|";
// ---------^------^
Я предлагаю работать черезбазовая книга по JavaScript и / или учебные пособия из авторитетных источников.Если вы не уверены, что делает оператор, я советую посмотреть на в MDN .