const regex = /(?<day>[0-3]?[0-9])( *\/ *|\. *| )(?<month>januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december|jan|feb|mar|apr|maj|juni|juli|aug|sept|okt|nov|dec|[0-3]?[0-9])( *\/? *)(?<year>\d{4})*[-kl:.\t ]*(?<startTime>\d{2,2}[.:]\d{2})*[-\t ]*(?<endTime>\d{2}[.:]\d{2})*/gi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?<day>[0-3]?[0-9])( *\\\/ *|\\. *| )(?<month>januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december|jan|feb|mar|apr|maj|juni|juli|aug|sept|okt|nov|dec|[0-3]?[0-9])( *\\\/? *)(?<year>\\d{4})*[-kl:.\\t ]*(?<startTime>\\d{2,2}[.:]\\d{2})*[-\\t ]*(?<endTime>\\d{2}[.:]\\d{2})*', 'gi')
const str = `Lørdag den 01. december 2018 kl. 15:00 - 17.30
01 / 12
01 / 12
den 01 December.
01 / 12
den 01 april.
ma. Den 01 DEC. 2000 kl 15.00 - 17:30
01/04
01/4
01 dec
den 01 apr.
____
01 12
01:13
01 personer til et macaron kursus.
DKK 300 pr. deltager.
2400 DKK.
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions