123456789101112131415161718192021222324 |
- /* 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;
- }
|