var src = 'aaaaaaabbbbbxxxxxxdddddeeezzzzzfffffffffxxxxxxxxxunko'; var rule = /[x|z]+/g; var copy = src; var res = []; src.match(rule).forEach(function(m) { var i = copy.indexOf(m); if (i != 0) res.push(copy.slice(0, i-1)); // マッチじゃない部分をpush res.push(copy.slice(i, i+m.length)); // マッチな部分をpush copy = copy.slice(i+m.length); // pushした部分を削る }); if (copy.length != 0) res.push(copy); // ケツに残りカスがあればpush console.log(res); document.getElementById('result').innerHTML = res;
<pre id="result"></pre>