12345678910111213141516171819202122232425262728293031323334 |
- "use strict";
- /**
- * RegexParser
- * Parses a string input.
- *
- * @name RegexParser
- * @function
- * @param {String} input The string input that should be parsed as regular
- * expression.
- * @return {RegExp} The parsed regular expression.
- */
- var RegexParser = module.exports = function (input) {
- // Validate input
- if (typeof input !== "string") {
- throw new Error("Invalid input. Input must be a string");
- }
- // Parse input
- var m = input.match(/(\/?)(.+)\1([a-z]*)/i);
- // If there's no match, throw an error
- if (!m) {
- throw new Error("Invalid regular expression format.");
- }
- // Filter valid flags: 'g', 'i', 'm', 's', 'u', and 'y'
- var validFlags = Array.from(new Set(m[3])).filter(function (flag) {
- return "gimsuy".includes(flag);
- }).join("");
- // Create the regular expression
- return new RegExp(m[2], validFlags);
- };
|