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));