JSFiddle - React, Tailwind, and code Playground
by brigand
HTML
<pre id="out"></pre>
JavaScript
function regexX(flags, literals, ...args) {
if (typeof flags !== 'string') {
args = [literals].concat(args)
literals = flags;
flags = '';
}
let [regex, ...raw] = literals.raw;
for (let i = 0; i < args.length; i += 1) {
regex += args[i];
regex += raw[i];
}
regex = regex.replace(/^(.*)#.*$/gm, '$1').replace(/\s+/g, '');
return new RegExp(regex, flags);
}
let date = regexX`
(\d\d\d\d) # yyyy
-
(\d\d) # mm
-
(\d\d) #dd`;
out.textContent = JSON.stringify('foo 2020-01-27'.match(date));
let date2 = regexX('gi')`
(\d\d\d\d) # yyyy
-
(\d\d) # mm
-
(\d\d) #dd`;
out.textContent = JSON.stringify('foo 2020-01-27 2019-05-15'.match(date2));