to-reg-exp.js 701 B

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