Соответствует пробелу, соответствует и захватывает запятую при разбиении с помощью str.split(/\s+|(,)/).filter(Boolean)
.
. Или вы можете сопоставить любое количество символов, кроме пробелов и запятых, или просто запятая с str.match(/[^\s,]+|,/g)
.
var str = "This is a word, and another.";
console.log(
str.split(/\s+|(,)/).filter(Boolean)
);
// => ["This", "is", "a", "word", ",", "and", "another."]
console.log(
str.match(/[^\s,]+|,/g)
);
// => ["This", "is", "a", "word", ",", "and", "another."]
Часть .filter(Boolean)
удалит пустые элементы из результирующего массива, которые появляются из-за возможных последовательных совпадений или совпадений в начале строки.