const regex = /(?:for\(.*<\W?)(([\w]+)\.?)+(?:\[?)|(?:\.length)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:for\\(.*<\\W?)(([\\w]+)\\.?)+(?:\\[?)|(?:\\.length)', 'gm')
const str = `for(\$j = 0; \$j < incomingData.customer['data'].length; \$j++){
for(c=a.children.length-1;0<=c;c--)d
for(l=0;l<g.length;l++){d=g[l]
for(h in b)if(!h.match(d||/margin|text\\-align|width|border|padding/i))if(g)g=!1;else{var l=new CKEDITOR.htmlParser.element("span");l.attributes.style=h+":"+b[h];c.add(l);c=l;delete b[h]}CKEDITOR.tools.isEmpty(b)?delete a.attributes.style:a.attributes.style=CKEDITOR.tools.writeCssText(b);for(b=0;b<e.length;b++)c.add(e[b])},sortStyles:function(a){for(var b=["border","border-bottom","font-size","background"],c=m.parseCssText(a.attributes.style),d=m.objectKeys(c),e=[],g=[],h=0;h<d.length;h++)
for(var f=0,n=0,l=0,p,e=a.\$.rows.length;l<e;l++)
for(var i = 0; i < this.audioLayerControl.listOfSequenceEditors.length; ++i)
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions