У меня есть этот код:
var r = /(?:^\s*([^\s]*)\s*)(?:,\s*([^\s]*)\s*){0,}$/
var s = " a , b , c "
var m = s.match(r)
m => [" a , b , c ", "a", "c"]
Похоже, что вся строка была сопоставлена, но где "b"
ушло? Я предпочел бы получить:
[" a , b , c ", "a", "b", "c"]
так что я могу сделать m.shift()
с результатом, подобным s.split(',')
, но также с удаленными пробелами.
У меня есть ошибка в регулярном выражении или я неправильно понимаю String.prototype.match
?