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.

19 lines
701 B

2 years ago
'use strict';
var regexParser = require('regex-parser');
var REGEXP = /(\/?)(.+)\1([a-z]*)/i;
/**
* Parse the give value as a regular expression or give a pass-none expression where it is invalid
* @param {RegExp|string|*} value An existing expression, or its string representation, or degenerate value
* @returns {RegExp} The given expression or one matching the RegExp string else a pass-none expression
*/
function toRegExp(value) {
return ((typeof value === 'object') && (typeof value.test === 'function') && value) ||
((typeof value === 'string') && REGEXP.test(value) && regexParser(value)) ||
(/^true$|^$/.test(value) && /.*/) ||
/matchnone^/;
}
module.exports = toRegExp;