Это странное на вид регулярное выражение будет работать без пробелов вокруг труб:
var matches = "a=>aa|b=>b||b|c=>cc".match(/(?:[^|]|\|\|)+/g)
Вместо разделения он ищет токены с двойными каналами, но не одиночные. Если у вас есть пробелы и вам нужно соответствовать b=>b|b | c=>5
, используйте регулярное выражение S.Mark, но это может помочь в других случаях.
Чтобы уточнить, [^|]|\|\|
читает [not a pipe] OR [two pipes]
.