const regex = /\b(ATU\d{8}|BE[01]\d{9}|BG\d{9,10}|CY\d{8}[LX]|CZ\d{8,10}|DE\d{9}|DK\d{8}|EE\d{9}|EL\d{9}|ES[\dA-Z]\d{7}[\dA-Z]|FI\d{8}|FR[\dA-Z]{2}\d{9}|HR\d{11}|HU\d{8}|IE\d{7}[A-Z]{2}|IT\d{11}|LT(\d{9}|\d{12})|LU\d{8}|LV\d{11}|MT\d{8}|NL\d{9}B\d{2}|PL\d{10}|PT\d{9}|RO\d{2,10}|SE\d{12}|SI\d{8}|SK\d{10})\b/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('\\b(ATU\\d{8}|BE[01]\\d{9}|BG\\d{9,10}|CY\\d{8}[LX]|CZ\\d{8,10}|DE\\d{9}|DK\\d{8}|EE\\d{9}|EL\\d{9}|ES[\\dA-Z]\\d{7}[\\dA-Z]|FI\\d{8}|FR[\\dA-Z]{2}\\d{9}|HR\\d{11}|HU\\d{8}|IE\\d{7}[A-Z]{2}|IT\\d{11}|LT(\\d{9}|\\d{12})|LU\\d{8}|LV\\d{11}|MT\\d{8}|NL\\d{9}B\\d{2}|PL\\d{10}|PT\\d{9}|RO\\d{2,10}|SE\\d{12}|SI\\d{8}|SK\\d{10})\\b', 'gm')
const str = `ATU12345678
BE1234567890
BG123456789
HR12345678901
CY12345678X
CZ12345678
DK12345678
EE123456789
FI12345678
FR12345678901
DE123456789
EL123456789
HU12345678
IE1234567WA
IT12345678901
LV12345678901
LT123456789
LU12345678
MT12345678
NL123456789B01
PL1234567890
PT123456789
RO1234567890
SK1234567890
SI12345678
ESX12345678
SE123456789012`;
// 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