const regex = /^(([a-zA-Z0-9\|\!\._\-\s\:]*<a href=\"#\" onclick=\"ON_CLICK_EVENT\">[a-zA-Z0-9\|\!\._\-]*<\/a>)|(<a href=\"#\" on(c|C)lick=\"(HSBC_pre_chat_est\(\)\;\s)*ON_CLICK_EVENT\"(\s)*>(\s)*<img src=(\'|\")[a-zA-Z0-9\|\!\._\-\:\,\/\s]*(\'|\")(\s)*(\/)*>(\s)*<\/a>)|(<a href=\"#\" onclick='try \{ LPButtonClicked\(\)\; \} catch \(e\) \{\}\; ON_CLICK_EVENT'\; title=\"Start Live Chat\"><img src=\"[a-zA-Z0-9\|\!\._\-\:\,\/\s]*\" border=0 alt=\"Live Chat\" onload=\"LPButtonDisplayed\(\)\"><\/a>)|([a-zA-Z0-9\|\!\._\-\s]*<a href=\"#\" onclick=(\'|\")ON_CLICK_EVENT(\'|\")><span><span class=\"lpStartChat\">[a-zA-Z0-9\|\!\._\-\s]*<\/span><\/span><\/a>)|(<a href='javascript\:\;' on(c|C)lick='javascript\:ON_CLICK_EVENT\;'>(\s)*<img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*'(\s)*(border='0'\salt='Chat with an HSBC Representative' title='Chat with an HSBC Representative')*(\/)*>(\s)*<\/a>)|(<a href='#' onClick='javascript\:ON_CLICK_EVENT\; '>[a-zA-Z0-9\|\!\._\-\s]*<\/a>)|(<h4>Live Chat<\/h4>(\s)*<div class=\"supportContentGeneralBoxInnerChat\">(\s)*<h5>Welcome to Live Chat<\/h5>(\s)*<p>How can we help you\?<\/p>(\s)*<p><a class=\"redBtn liveChatBtn\" href=\"#\"(\s)*onclick=\"ON_CLICK_EVENT\" title=\"Start Chat\"><span>Start Chat<\/span><\/a><\/p>(\s)*<\/div>)|(<div style='padding\:0px' box-shadow\: -3px 3px 10px(\s)*#888888\;><a href=\"#\" onClick='ON_CLICK_EVENT\;'target=\"_self\">(\s)*<img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*'(\s)*id='SwitchButton' Border='0'\/><\/a><\/div>)|(<div id=\"lpButtonTab\" style=\"float:left; width:30px\" onclick=\"lpStickyButton\.toggleState\(\);\"><img src=\"[a-zA-Z0-9\|\!\._\-\:\,\/\s]*\" width=\"30\" height=\"125\" border=\"0\" \/><\/div>(\s)*<div id=\"lpButtonArea\" style=\"margin-left:30px; width:251px\"><img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*' style='cursor:pointer' onclick='ON_CLICK_EVENT' \/><\/div>)|(<div class=\"liveChatSideBox\">(\s)*<h2>Live chat<\/h2>(\s)*<p>Welcome to Live Chat\. How can we help you\?<\/p>(\s)*<p><a class=\"redBtn liveChatBtn\" href=\"#\"(\s)*onclick=\"ON_CLICK_EVENT\"(\s)*title=\"Start Chat\"><span>Start Chat<\/span><\/a><\/p>(\s)*<\/div>))$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(([a-zA-Z0-9\\|\\!\\._\\-\\s\\:]*<a href=\\"#\\" onclick=\\"ON_CLICK_EVENT\\">[a-zA-Z0-9\\|\\!\\._\\-]*<\\\/a>)|(<a href=\\"#\\" on(c|C)lick=\\"(HSBC_pre_chat_est\\(\\)\\;\\s)*ON_CLICK_EVENT\\"(\\s)*>(\\s)*<img src=(\\\'|\\")[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*(\\\'|\\")(\\s)*(\\\/)*>(\\s)*<\\\/a>)|(<a href=\\"#\\" onclick=\'try \\{ LPButtonClicked\\(\\)\\; \\} catch \\(e\\) \\{\\}\\; ON_CLICK_EVENT\'\\; title=\\"Start Live Chat\\"><img src=\\"[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\\" border=0 alt=\\"Live Chat\\" onload=\\"LPButtonDisplayed\\(\\)\\"><\\\/a>)|([a-zA-Z0-9\\|\\!\\._\\-\\s]*<a href=\\"#\\" onclick=(\\\'|\\")ON_CLICK_EVENT(\\\'|\\")><span><span class=\\"lpStartChat\\">[a-zA-Z0-9\\|\\!\\._\\-\\s]*<\\\/span><\\\/span><\\\/a>)|(<a href=\'javascript\\:\\;\' on(c|C)lick=\'javascript\\:ON_CLICK_EVENT\\;\'>(\\s)*<img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\'(\\s)*(border=\'0\'\\salt=\'Chat with an HSBC Representative\' title=\'Chat with an HSBC Representative\')*(\\\/)*>(\\s)*<\\\/a>)|(<a href=\'#\' onClick=\'javascript\\:ON_CLICK_EVENT\\; \'>[a-zA-Z0-9\\|\\!\\._\\-\\s]*<\\\/a>)|(<h4>Live Chat<\\\/h4>(\\s)*<div class=\\"supportContentGeneralBoxInnerChat\\">(\\s)*<h5>Welcome to Live Chat<\\\/h5>(\\s)*<p>How can we help you\\?<\\\/p>(\\s)*<p><a class=\\"redBtn liveChatBtn\\" href=\\"#\\"(\\s)*onclick=\\"ON_CLICK_EVENT\\" title=\\"Start Chat\\"><span>Start Chat<\\\/span><\\\/a><\\\/p>(\\s)*<\\\/div>)|(<div style=\'padding\\:0px\' box-shadow\\: -3px 3px 10px(\\s)*#888888\\;><a href=\\"#\\" onClick=\'ON_CLICK_EVENT\\;\'target=\\"_self\\">(\\s)*<img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\'(\\s)*id=\'SwitchButton\' Border=\'0\'\\\/><\\\/a><\\\/div>)|(<div id=\\"lpButtonTab\\" style=\\"float:left; width:30px\\" onclick=\\"lpStickyButton\\.toggleState\\(\\);\\"><img src=\\"[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\\" width=\\"30\\" height=\\"125\\" border=\\"0\\" \\\/><\\\/div>(\\s)*<div id=\\"lpButtonArea\\" style=\\"margin-left:30px; width:251px\\"><img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\' style=\'cursor:pointer\' onclick=\'ON_CLICK_EVENT\' \\\/><\\\/div>)|(<div class=\\"liveChatSideBox\\">(\\s)*<h2>Live chat<\\\/h2>(\\s)*<p>Welcome to Live Chat\\. How can we help you\\?<\\\/p>(\\s)*<p><a class=\\"redBtn liveChatBtn\\" href=\\"#\\"(\\s)*onclick=\\"ON_CLICK_EVENT\\"(\\s)*title=\\"Start Chat\\"><span>Start Chat<\\\/span><\\\/a><\\\/p>(\\s)*<\\\/div>))$', 'gm')
const str = `<div class="liveChatSideBox">
<h2>Live chat</h2>
<p>Welcome to Live Chat. How can we help you?</p>
<p><a class="redBtn liveChatBtn" href="#" onclick="ON_CLICK_EVENT"
title="Start Chat"><span>Start Chat</span></a></p> </div>
<a href="#" onclick="ON_CLICK_EVENT" >
<img src='https://www.hsbc.co.uk/content_static/en/images/en/alt_design_3E.png' />
</a>`;
// 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