const regex = /^hotma.*(om|cm|co|et)$|^hotmail\.com[^\.].*$|^hotmail$|^h(to)?mail\.com/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^hotma.*(om|cm|co|et)$|^hotmail\\.com[^\\.].*$|^hotmail$|^h(to)?mail\\.com', 'gm')
const str = `SQL Expression
hotmail.es
hotmail.co.kr
hotmail.co.uk
hotmail.com.tw
hotmail.com
hotmail
hotmailcom
htomail.com
hmail.com
hotmai.com
hotmail.cm
hotmail.net
hotmailc.om
hotmaol.com
homail.com
hotmail.co
hotmail.comahmedshakirny
hotmail.com
hotmail
hotmailcom
htomail.com
hotmail.es
hotmail.co.kr
hotmail.co.uk
hmail.com
hotmai.com
hotmail.cm
hotmail.net
hotmailc.om
hotmaol.com
homail.com
hotmail.co
hotmail.comahmedshakirny
hotmail.comc
hotmail.comi
hotmail.om
hoymail.com
hitmail.com
hjotmail.com
hormail.com
hotgmail.com
hotmaii.com
hotmail..com
hotmail..comn
hotmail.com.lowercaseletter
hotmail.com.tw
hotmail.comgeorge4nyy
hotmail.comjehan.nizam09
hotmail.commn
hotmail.comn
hotmail.comorgmail.com
hotmail.comorvince1812
hotmail.con
hotmail.conm
hotmail.corp
hotmail.vom
hotmail.xom
hotmain.com
hotmaiul.com
hotmmail.com
hpotmail.com
`;
// 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