voca
Version:
The ultimate JavaScript string library
49 lines (40 loc) • 1.35 kB
JavaScript
;
require('./internal/is_nil.js');
require('./is_string.js');
var coerce_to_string = require('./internal/coerce_to_string.js');
var to_string = require('./internal/to_string.js');
/**
* Checks whether `subject` matches the regular expression `pattern`.
*
* @function matches
* @static
* @since 1.0.0
* @memberOf Query
* @param {string} [subject=''] The string to verify.
* @param {RegExp|string} pattern The pattern to match. If `pattern` is not RegExp, it is transformed to `new RegExp(pattern, flags)`.
* @param {string} [flags=''] The regular expression flags. Applies when `pattern` is string type.
* @return {boolean} Returns `true` if `subject` matches `pattern` or `false` otherwise.
* @example
* v.matches('pluto', /plu.{2}/);
* // => true
*
* v.matches('sun', 'S', 'i');
* // => true
*
* v.matches('apollo 11', '\\d{3}');
* // => false
*/
function matches(subject, pattern, flags) {
var subjectString = coerce_to_string.coerceToString(subject);
var flagsString = coerce_to_string.coerceToString(flags);
var patternString;
if (!(pattern instanceof RegExp)) {
patternString = to_string.toString(pattern);
if (patternString === null) {
return false;
}
pattern = new RegExp(patternString, flagsString);
}
return pattern.test(subjectString);
}
module.exports = matches;