Ответ 1
Вы можете использовать регулярное выражение, которое находится в начале или за ним следует запятая или в и, и заменить ее пустой строкой.
/^,*|,(?=,|$)/g
1-я альтернатива
^,*
^
утверждает положение в начале строки
,*
соответствует символу,
буквально (с учетом регистра)
*
Квантификатор. Совпадает между нулем и неограниченным временем, как можно многократно, при необходимости возвращаясь (жадный)Вторая альтернатива
,+(?=,|$)
,+
соответствует символу,
буквально (с учетом регистра)
+
Квантификатор. Совпадает между одним и неограниченным временем как можно дольше, возвращая по мере необходимости (жадный)Положительный Lookahead
(?=,|$)
Утвердите, что Regex ниже соответствует
1-я альтернатива
,
,
соответствует букве буквально (с учетом регистра)Вторая альтернатива
$
$
утверждает положение в конце строкиГлобальные флаги шаблонов
g modifier
: g lobal. Все совпадения (не возвращаются после первого совпадения)
var string = ",,,a,,,,,b,,c,,,,d,,,,";
console.log(string.replace(/^,*|,+(?=,|$)/g, ''));