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
19 lines
701 B
'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; |