the-forest/client/node_modules/regex-parser/lib/index.js
2024-09-17 20:35:18 -04:00

34 lines
894 B
JavaScript

"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);
};