Quiero que la salida sea así:
['YY','RR'] sin elementos vacíos
function pntSq(m){ let a = m.split(/([AZ][AZ])/gi) console.log(a) } pntSq("YYRR") // output : // [ '', 'YY', '', 'RR', '' ]Es posible que JavaScript no admita la división en lookbehinds. Una solución sería hacer esto en dos pasos. Primero podemos reemplazar en el siguiente patrón de expresiones regulares:
([AZ])(?!\1)(?=.)Esto capturará cualquier mayúscula que a su vez sea seguida por una letra diferente (y tampoco el final de la cadena). Luego, reemplazamos con un solo espacio. Como segundo paso, simplemente dividimos el espacio para obtener la matriz de salida que queremos.
function pntSq(m) { m = m.replace(/([AZ])(?!\1)(?=.)/g, "$1 "); console.log(m); var a = m.split(/ /g); console.log(a); } pntSq("YYRRAAABBBBBCC");