UNPKG

regextras

Version:

Array extras for regular expressions

25 lines (23 loc) 835 B
/* eslint-disable node/no-unsupported-features/es-syntax */ /** * @param {RegExp} regex * @param {string} newFlags * @param {Integer} [newLastIndex=regex.lastIndex] * @returns {RegExp} */ export default function mixinRegex ( regex, newFlags, newLastIndex = regex.lastIndex ) { newFlags = newFlags || ''; regex = new RegExp( regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.unicode ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : '') + (newFlags.includes('s') ? 's' : regex.dotAll ? 's' : '') ); regex.lastIndex = newLastIndex; return regex; }