You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"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);
// Invalid flags
if (m[3] && !/^(?!.*?(.).*?\1)[gmixXsuUAJ]+$/.test(m[3])) { return RegExp(input); }
// Create the regular expression
return new RegExp(m[2], m[3]); };
|