const regex = /^AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}$|^AE[0-9]{2}[0-9]{3}[0-9]{16}|AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}$|^AT[0-9]{2}[0-9]{5}[0-9]{11}$|^AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}$|^BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}$|^BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}$|^BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}$|^BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}$|^BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]$|^CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}$|^CR[0-9]{2}[0-9]{3}[0-9]{14}$|^CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}$|^CZ[0-9]{2}[0-9]{20}$|^DE[0-9]{2}[0-9]{8}[0-9]{10}$|^DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}$|^DK[0-9]{2}[0-9]{14}$|^EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}$|^ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}$|^FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}$|^FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}$|^FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$|^GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}$|^GE[0-9]{2}[A-Z]{2}[0-9]{16}$|^GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}$|^GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}$|^GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}$|^GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}$|^HR[0-9]{2}[0-9]{7}[0-9]{10}$|^HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}$|^IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}$|^IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}$|^IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}$|^IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$|^KW[0-9]{2}[A-Z]{4}[0-9]{22}$|^KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}$|^LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}$|^LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}$|^LT[0-9]{2}[0-9]{5}[0-9]{11}$|^LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}$|^LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}$|^MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$|^MD[0-9]{2}[A-Z0-9]{20}$|^ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}$|^MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}$|^MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$|^MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}$|^NL[0-9]{2}[A-Z]{4}[0-9]{10}$|^NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}$|^PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}$|^PL[0-9]{2}[0-9]{8}[0-9]{16}$|^PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}$|^PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}$|^RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}$|^RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}$|^SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}$|^SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}$|^SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}$|^SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$|^TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}$|^VG[0-9]{2}[A-Z]{4}[0-9]{16}$/;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}$|^AE[0-9]{2}[0-9]{3}[0-9]{16}|AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}$|^AT[0-9]{2}[0-9]{5}[0-9]{11}$|^AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}$|^BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}$|^BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}$|^BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}$|^BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}$|^BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]$|^CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}$|^CR[0-9]{2}[0-9]{3}[0-9]{14}$|^CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}$|^CZ[0-9]{2}[0-9]{20}$|^DE[0-9]{2}[0-9]{8}[0-9]{10}$|^DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}$|^DK[0-9]{2}[0-9]{14}$|^EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}$|^ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}$|^FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}$|^FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}$|^FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$|^GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}$|^GE[0-9]{2}[A-Z]{2}[0-9]{16}$|^GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}$|^GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}$|^GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}$|^GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}$|^HR[0-9]{2}[0-9]{7}[0-9]{10}$|^HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}$|^IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}$|^IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}$|^IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}$|^IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$|^KW[0-9]{2}[A-Z]{4}[0-9]{22}$|^KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}$|^LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}$|^LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}$|^LT[0-9]{2}[0-9]{5}[0-9]{11}$|^LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}$|^LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}$|^MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$|^MD[0-9]{2}[A-Z0-9]{20}$|^ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}$|^MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}$|^MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$|^MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}$|^NL[0-9]{2}[A-Z]{4}[0-9]{10}$|^NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}$|^PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}$|^PL[0-9]{2}[0-9]{8}[0-9]{16}$|^PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}$|^PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}$|^RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}$|^RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}$|^SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}$|^SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}$|^SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}$|^SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$|^TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$|^TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}$|^VG[0-9]{2}[A-Z]{4}[0-9]{16}$', '')
const str = `GB29NWBK60161331926819`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// 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