const regex = /(\s*([\0\b\'\"\n\r\t\%\_\\]*\s*(((select\s+\S.*\s+from\s+\S+)|(insert\s+into\s+\S+)|(update\s+\S+\s+set\s+\S+)|(delete\s+from\s+\S+)|(((drop)|(create)|(alter)|(backup))\s+((table)|(index)|(function)|(PROCEDURE)|(ROUTINE)|(SCHEMA)|(TRIGGER)|(USER)|(VIEW))\s+\S+)|(truncate\s+table\s+\S+)|(exec\s+)|(\/\*)|(--)))(\s*[\;]\s*)*)+)/i;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(\\s*([\\0\\b\\\'\\"\\n\\r\\t\\%\\_\\\\]*\\s*(((select\\s+\\S.*\\s+from\\s+\\S+)|(insert\\s+into\\s+\\S+)|(update\\s+\\S+\\s+set\\s+\\S+)|(delete\\s+from\\s+\\S+)|(((drop)|(create)|(alter)|(backup))\\s+((table)|(index)|(function)|(PROCEDURE)|(ROUTINE)|(SCHEMA)|(TRIGGER)|(USER)|(VIEW))\\s+\\S+)|(truncate\\s+table\\s+\\S+)|(exec\\s+)|(\\\/\\*)|(--)))(\\s*[\\;]\\s*)*)+)', 'i')
const str = `exect`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// 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