Это не так просто, потому что JavaScript не выглядит позади.
Попробуйте
result = subject.replace(/(^(?:[^&]+&[^&]+)|[^&]+)&/g, "$1,");
Пояснение:
(
Запишите следующее в обратную ссылку $1
:
^(?:[^&]+&[^&]+)
Начало строки, за которым следуют два поля, разделенных амперсандом
|
или
[^&]+
одно поле (поле содержит один или несколько символов без амперсанда).
)
Конец группы захвата
&
соответствует амперсанду.
Таким образом, первый амперсанд будет пропущен в матче. Если вам нужно обработать пустые поля, используйте
(^(?:[^&]*&[^&]*)|[^&]*)&