This commit is contained in:
陆柯 2023-07-27 19:18:06 +08:00
parent a256e4fc34
commit e18018f03c
2 changed files with 48 additions and 36 deletions

View File

@ -1,5 +1,6 @@
// https://en.wikipedia.org/wiki/ISO_3166 // https://en.wikipedia.org/wiki/ISO_3166
// https://www.iso.org/obp/ui/#search // https://www.iso.org/obp/ui/#search
// https://www.chenweiliang.com/cwl-1354.html
module.exports = { module.exports = {
AD: { AD: {
@ -59,7 +60,7 @@ module.exports = {
iso3: 'ATG', iso3: 'ATG',
isoName: 'ANTIGUA AND BARBUDA', isoName: 'ANTIGUA AND BARBUDA',
isod: '028', isod: '028',
itc: '1 268', itc: '1268',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Antigua and Barbuda', zhCN: '安提瓜和巴布达', zhHK: '安提瓜和巴布达', zhTW: '安提瓜和巴布达' }, name: { enUS: 'Antigua and Barbuda', zhCN: '安提瓜和巴布达', zhHK: '安提瓜和巴布达', zhTW: '安提瓜和巴布达' },
namefull: { enUS: '', zhCN: '安提瓜和巴布达' }, namefull: { enUS: '', zhCN: '安提瓜和巴布达' },
@ -75,7 +76,7 @@ module.exports = {
iso3: 'AIA', iso3: 'AIA',
isoName: 'ANGUILLA', isoName: 'ANGUILLA',
isod: '660', isod: '660',
itc: '1 264', itc: '1264',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Anguilla', zhCN: '安圭拉', zhHK: '安圭拉岛', zhTW: '英属安圭拉' }, name: { enUS: 'Anguilla', zhCN: '安圭拉', zhHK: '安圭拉岛', zhTW: '英属安圭拉' },
namefull: { enUS: '', zhCN: '安圭拉' }, namefull: { enUS: '', zhCN: '安圭拉' },
@ -171,7 +172,7 @@ module.exports = {
iso3: 'ASM', iso3: 'ASM',
isoName: 'AMERICAN SAMOA', isoName: 'AMERICAN SAMOA',
isod: '016', isod: '016',
itc: '1 684', itc: '1684',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'American Samoa', zhCN: '美属萨摩亚', zhHK: '美属萨摩亚', zhTW: '美属萨摩亚' }, name: { enUS: 'American Samoa', zhCN: '美属萨摩亚', zhHK: '美属萨摩亚', zhTW: '美属萨摩亚' },
namefull: { enUS: '', zhCN: '美属萨摩亚' }, namefull: { enUS: '', zhCN: '美属萨摩亚' },
@ -283,7 +284,7 @@ module.exports = {
iso3: 'BRB', iso3: 'BRB',
isoName: 'BARBADOS', isoName: 'BARBADOS',
isod: '052', isod: '052',
itc: '1 246', itc: '1246',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Barbados', zhCN: '巴巴多斯', zhHK: '巴巴多斯', zhTW: '巴巴多斯' }, name: { enUS: 'Barbados', zhCN: '巴巴多斯', zhHK: '巴巴多斯', zhTW: '巴巴多斯' },
namefull: { enUS: '', zhCN: '巴巴多斯' }, namefull: { enUS: '', zhCN: '巴巴多斯' },
@ -427,7 +428,7 @@ module.exports = {
iso3: 'BMU', iso3: 'BMU',
isoName: 'BERMUDA', isoName: 'BERMUDA',
isod: '060', isod: '060',
itc: '1 441', itc: '1441',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Bermuda', zhCN: '百慕大', zhHK: '百慕大', zhTW: '百慕大' }, name: { enUS: 'Bermuda', zhCN: '百慕大', zhHK: '百慕大', zhTW: '百慕大' },
namefull: { enUS: '', zhCN: '百慕大' }, namefull: { enUS: '', zhCN: '百慕大' },
@ -507,7 +508,7 @@ module.exports = {
iso3: 'BHS', iso3: 'BHS',
isoName: 'BAHAMAS', isoName: 'BAHAMAS',
isod: '044', isod: '044',
itc: '1 242', itc: '1242',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Bahamas', zhCN: '巴哈马', zhHK: '巴哈马', zhTW: '巴哈马' }, name: { enUS: 'Bahamas', zhCN: '巴哈马', zhHK: '巴哈马', zhTW: '巴哈马' },
namefull: { enUS: 'the Commonwealth of The Bahamas', zhCN: '巴哈马联邦' }, namefull: { enUS: 'the Commonwealth of The Bahamas', zhCN: '巴哈马联邦' },
@ -604,6 +605,9 @@ module.exports = {
isoName: 'CANADA', isoName: 'CANADA',
isod: '124', isod: '124',
itc: '1', itc: '1',
phoneRegex: /^\d{10}$/.source,
phoneMaxlen: 10,
phoneMinlen: 10,
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Canada', zhCN: '加拿大', zhHK: '加拿大', zhTW: '加拿大' }, name: { enUS: 'Canada', zhCN: '加拿大', zhHK: '加拿大', zhTW: '加拿大' },
namefull: { enUS: '', zhCN: '加拿大' }, namefull: { enUS: '', zhCN: '加拿大' },
@ -764,14 +768,14 @@ module.exports = {
isoName: 'CHINA', isoName: 'CHINA',
isod: '156', isod: '156',
itc: '86', itc: '86',
phoneRegex: /^1\d{10}$/.source,
phoneMaxlen: 11,
phoneMinlen: 11,
legalstatus: '1', legalstatus: '1',
name: { enUS: 'China', native: '中国', zhCN: '中国', zhHK: '大陆', zhTW: '大陆' }, name: { enUS: 'China', native: '中国', zhCN: '中国', zhHK: '大陆', zhTW: '大陆' },
namefull: { enUS: "the People's Republic of China", zhCN: '中华人民共和国' }, namefull: { enUS: "the People's Republic of China", zhCN: '中华人民共和国' },
notes: notes:
'“GB/T 2659-2000”的“CN”适用于整个中华人民共和国辖区包括中国大陆、香港、澳门。而“ISO 3166-1”和“CNS 12842”的“CN”则仅适用于中国大陆不含港澳地区。', '“GB/T 2659-2000”的“CN”适用于整个中华人民共和国辖区包括中国大陆、香港、澳门。而“ISO 3166-1”和“CNS 12842”的“CN”则仅适用于中国大陆不含港澳地区。',
phoneRegex: /^1\d{10}$/.source,
phoneMaxlen: 11,
phoneMinlen: 11,
timezone: '0', timezone: '0',
}, },
CO: { CO: {
@ -959,7 +963,7 @@ module.exports = {
iso3: 'DMA', iso3: 'DMA',
isoName: 'DOMINICA', isoName: 'DOMINICA',
isod: '212', isod: '212',
itc: '1 767', itc: '1767',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Dominica', zhCN: '多米尼克', zhHK: '多米尼克', zhTW: '多米尼克' }, name: { enUS: 'Dominica', zhCN: '多米尼克', zhHK: '多米尼克', zhTW: '多米尼克' },
namefull: { enUS: 'the Commonwealth of Dominica', zhCN: '多米尼克' }, namefull: { enUS: 'the Commonwealth of Dominica', zhCN: '多米尼克' },
@ -1248,7 +1252,7 @@ module.exports = {
iso3: 'GRD', iso3: 'GRD',
isoName: 'GRENADA', isoName: 'GRENADA',
isod: '308', isod: '308',
itc: '1 473', itc: '1473',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Grenada', zhCN: '格林纳达', zhHK: '格林纳达', zhTW: '格林纳达' }, name: { enUS: 'Grenada', zhCN: '格林纳达', zhHK: '格林纳达', zhTW: '格林纳达' },
namefull: { enUS: '', zhCN: '格林纳达' }, namefull: { enUS: '', zhCN: '格林纳达' },
@ -1477,7 +1481,7 @@ module.exports = {
iso3: 'GUM', iso3: 'GUM',
isoName: 'GUAM', isoName: 'GUAM',
isod: '316', isod: '316',
itc: '1 671', itc: '1671',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Guam', zhCN: '关岛', zhHK: '关岛', zhTW: '关岛' }, name: { enUS: 'Guam', zhCN: '关岛', zhHK: '关岛', zhTW: '关岛' },
namefull: { enUS: '', zhCN: '关岛' }, namefull: { enUS: '', zhCN: '关岛' },
@ -1797,7 +1801,7 @@ module.exports = {
iso3: 'JAM', iso3: 'JAM',
isoName: 'JAMAICA', isoName: 'JAMAICA',
isod: '388', isod: '388',
itc: '1 876', itc: '1876',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Jamaica', zhCN: '牙买加', zhHK: '牙买加', zhTW: '牙买加' }, name: { enUS: 'Jamaica', zhCN: '牙买加', zhHK: '牙买加', zhTW: '牙买加' },
namefull: { enUS: '', zhCN: '牙买加共和国' }, namefull: { enUS: '', zhCN: '牙买加共和国' },
@ -1830,11 +1834,11 @@ module.exports = {
isoName: 'JAPAN', isoName: 'JAPAN',
isod: '392', isod: '392',
itc: '81', itc: '81',
phoneRegex: /^\d{10,11}$/.source,
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Japan', native: '日本', zhCN: '日本', zhHK: '日本', zhTW: '日本' }, name: { enUS: 'Japan', native: '日本', zhCN: '日本', zhHK: '日本', zhTW: '日本' },
namefull: { enUS: '', zhCN: '日本国' }, namefull: { enUS: '', zhCN: '日本国' },
notes: '', notes: '',
phoneRegex: /^\d{10,11}$/.source,
timezone: '1', timezone: '1',
}, },
KE: { KE: {
@ -1926,7 +1930,7 @@ module.exports = {
iso3: 'KNA', iso3: 'KNA',
isoName: 'SAINT KITTS AND NEVIS', isoName: 'SAINT KITTS AND NEVIS',
isod: '659', isod: '659',
itc: '1 869', itc: '1869',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Saint Kitts and Nevis', zhCN: '圣基茨和尼维斯', zhHK: '圣基茨和尼维斯', zhTW: '圣基茨和尼维斯' }, name: { enUS: 'Saint Kitts and Nevis', zhCN: '圣基茨和尼维斯', zhHK: '圣基茨和尼维斯', zhTW: '圣基茨和尼维斯' },
namefull: { enUS: '', zhCN: '圣基茨和尼维斯联邦' }, namefull: { enUS: '', zhCN: '圣基茨和尼维斯联邦' },
@ -1990,7 +1994,7 @@ module.exports = {
iso3: 'CYM', iso3: 'CYM',
isoName: 'CAYMAN ISLANDS', isoName: 'CAYMAN ISLANDS',
isod: '136', isod: '136',
itc: '1 345', itc: '1345',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Cayman Islands', zhCN: '开曼群岛', zhHK: '开曼群岛', zhTW: '开曼群岛' }, name: { enUS: 'Cayman Islands', zhCN: '开曼群岛', zhHK: '开曼群岛', zhTW: '开曼群岛' },
namefull: { enUS: '', zhCN: '开曼群岛' }, namefull: { enUS: '', zhCN: '开曼群岛' },
@ -2054,7 +2058,7 @@ module.exports = {
iso3: 'LCA', iso3: 'LCA',
isoName: 'SAINT LUCIA', isoName: 'SAINT LUCIA',
isod: '662', isod: '662',
itc: '1 758', itc: '1758',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Saint Lucia', zhCN: '圣卢西亚', zhHK: '圣卢西亚', zhTW: '圣卢西亚' }, name: { enUS: 'Saint Lucia', zhCN: '圣卢西亚', zhHK: '圣卢西亚', zhTW: '圣卢西亚' },
namefull: { enUS: '', zhCN: '圣卢西亚' }, namefull: { enUS: '', zhCN: '圣卢西亚' },
@ -2390,7 +2394,7 @@ module.exports = {
iso3: 'MNP', iso3: 'MNP',
isoName: 'NORTHERN MARIANA ISLANDS', isoName: 'NORTHERN MARIANA ISLANDS',
isod: '580', isod: '580',
itc: '1 670', itc: '1670',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Northern Mariana Islands', zhCN: '北马里亚纳群岛', zhHK: '北马里亚纳群岛', zhTW: '北马里亚纳群岛' }, name: { enUS: 'Northern Mariana Islands', zhCN: '北马里亚纳群岛', zhHK: '北马里亚纳群岛', zhTW: '北马里亚纳群岛' },
namefull: { enUS: 'the Commonwealth of the Northern Mariana Islands', zhCN: '北马里亚纳群岛邦' }, namefull: { enUS: 'the Commonwealth of the Northern Mariana Islands', zhCN: '北马里亚纳群岛邦' },
@ -2438,7 +2442,7 @@ module.exports = {
iso3: 'MSR', iso3: 'MSR',
isoName: 'MONTSERRAT', isoName: 'MONTSERRAT',
isod: '500', isod: '500',
itc: '1 664', itc: '1664',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Montserrat', zhCN: '蒙塞拉特岛', zhHK: '蒙塞拉特岛', zhTW: '蒙塞拉特岛' }, name: { enUS: 'Montserrat', zhCN: '蒙塞拉特岛', zhHK: '蒙塞拉特岛', zhTW: '蒙塞拉特岛' },
namefull: { enUS: '', zhCN: '蒙特塞拉特' }, namefull: { enUS: '', zhCN: '蒙特塞拉特' },
@ -3182,11 +3186,11 @@ module.exports = {
isoName: 'SINGAPORE', isoName: 'SINGAPORE',
isod: '702', isod: '702',
itc: '65', itc: '65',
phoneRegex: /^[89]\d{7}$/.source,
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Singapore', zhCN: '新加坡', zhHK: '新加坡', zhTW: '新加坡' }, name: { enUS: 'Singapore', zhCN: '新加坡', zhHK: '新加坡', zhTW: '新加坡' },
namefull: { enUS: 'the Republic of Singapore', zhCN: '新加坡共和国' }, namefull: { enUS: 'the Republic of Singapore', zhCN: '新加坡共和国' },
notes: '', notes: '',
phoneRegex: /^[89]\d{7}$/.source,
timezone: '0', timezone: '0',
}, },
SH: { SH: {
@ -3391,7 +3395,7 @@ module.exports = {
iso3: 'SXM', iso3: 'SXM',
isoName: 'SINT MAARTEN (DUTCH PART)', isoName: 'SINT MAARTEN (DUTCH PART)',
isod: '534', isod: '534',
itc: '1 721', itc: '1721',
legalstatus: '', legalstatus: '',
name: { enUS: 'Sint Maarten', zhCN: '荷属圣马丁', zhHK: '荷属圣马丁', zhTW: '荷属圣马丁' }, name: { enUS: 'Sint Maarten', zhCN: '荷属圣马丁', zhHK: '荷属圣马丁', zhTW: '荷属圣马丁' },
namefull: { zhCN: '荷属圣马丁' }, namefull: { zhCN: '荷属圣马丁' },
@ -3439,7 +3443,7 @@ module.exports = {
iso3: 'TCA', iso3: 'TCA',
isoName: 'TURKS AND CAICOS ISLANDS', isoName: 'TURKS AND CAICOS ISLANDS',
isod: '796', isod: '796',
itc: '1 649', itc: '1649',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'Turks and Caicos Islands', zhCN: '特克斯和凯科斯群岛', zhHK: '特克斯和凯科斯群岛', zhTW: '土克斯及开科斯群岛' }, name: { enUS: 'Turks and Caicos Islands', zhCN: '特克斯和凯科斯群岛', zhHK: '特克斯和凯科斯群岛', zhTW: '土克斯及开科斯群岛' },
namefull: { enUS: '', zhCN: '特克斯与凯科斯群岛' }, namefull: { enUS: '', zhCN: '特克斯与凯科斯群岛' },
@ -3631,7 +3635,7 @@ module.exports = {
iso3: 'TTO', iso3: 'TTO',
isoName: 'TRINIDAD AND TOBAGO', isoName: 'TRINIDAD AND TOBAGO',
isod: '780', isod: '780',
itc: '1 868', itc: '1868',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Trinidad and Tobago', zhCN: '特立尼达和多巴哥', zhHK: '特立尼达和多巴哥', zhTW: '特立尼达和多巴哥' }, name: { enUS: 'Trinidad and Tobago', zhCN: '特立尼达和多巴哥', zhHK: '特立尼达和多巴哥', zhTW: '特立尼达和多巴哥' },
namefull: { enUS: 'the Republic of Trinidad and Tobago', zhCN: '特立尼达和多巴哥共和国' }, namefull: { enUS: 'the Republic of Trinidad and Tobago', zhCN: '特立尼达和多巴哥共和国' },
@ -3727,7 +3731,7 @@ module.exports = {
iso3: 'UMI', iso3: 'UMI',
isoName: 'UNITED STATES MINOR OUTLYING ISLANDS', isoName: 'UNITED STATES MINOR OUTLYING ISLANDS',
isod: '581', isod: '581',
itc: '1 808', itc: '1808',
legalstatus: '', legalstatus: '',
name: { enUS: 'U.S. Minor Outlying Islands', zhCN: '美国本土外小岛屿', zhHK: '美国海外小岛', zhTW: '美国边疆小岛' }, name: { enUS: 'U.S. Minor Outlying Islands', zhCN: '美国本土外小岛屿', zhHK: '美国海外小岛', zhTW: '美国边疆小岛' },
namefull: { enUS: '', zhCN: '美国本土外小岛屿' }, namefull: { enUS: '', zhCN: '美国本土外小岛屿' },
@ -3744,13 +3748,13 @@ module.exports = {
isoName: 'UNITED STATES', isoName: 'UNITED STATES',
isod: '840', isod: '840',
itc: '1', itc: '1',
phoneRegex: /^\d{10}$/.source,
phoneMaxlen: 10,
phoneMinlen: 10,
legalstatus: '1', legalstatus: '1',
name: { enUS: 'United States', zhCN: '美国', zhHK: '美国', zhTW: '美国' }, name: { enUS: 'United States', zhCN: '美国', zhHK: '美国', zhTW: '美国' },
namefull: { enUS: 'the United States of America', zhCN: '美利坚合众国' }, namefull: { enUS: 'the United States of America', zhCN: '美利坚合众国' },
notes: '', notes: '',
phoneRegex: /^\d{10}$/.source,
phoneMaxlen: 10,
phoneMinlen: 10,
timezone: '-13', timezone: '-13',
}, },
UY: { UY: {
@ -3811,7 +3815,7 @@ module.exports = {
iso3: 'VCT', iso3: 'VCT',
isoName: 'SAINT VINCENT AND THE GRENADINES', isoName: 'SAINT VINCENT AND THE GRENADINES',
isod: '670', isod: '670',
itc: '1 784', itc: '1784',
legalstatus: '1', legalstatus: '1',
name: { enUS: 'Saint Vincent and the Grenadines', zhCN: '圣文森特和格林纳丁斯', zhHK: '圣文森特和格林纳丁斯', zhTW: '圣文森特和格林纳丁斯' }, name: { enUS: 'Saint Vincent and the Grenadines', zhCN: '圣文森特和格林纳丁斯', zhHK: '圣文森特和格林纳丁斯', zhTW: '圣文森特和格林纳丁斯' },
namefull: { enUS: '', zhCN: '圣文森特和格林纳丁斯' }, namefull: { enUS: '', zhCN: '圣文森特和格林纳丁斯' },
@ -3843,7 +3847,7 @@ module.exports = {
iso3: 'VGB', iso3: 'VGB',
isoName: 'VIRGIN ISLANDS (BRITISH)', isoName: 'VIRGIN ISLANDS (BRITISH)',
isod: '092', isod: '092',
itc: '1 284', itc: '1284',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'British Virgin Islands', zhCN: '英属维尔京群岛', zhHK: '英属处女群岛', zhTW: '英属维尔京群岛' }, name: { enUS: 'British Virgin Islands', zhCN: '英属维尔京群岛', zhHK: '英属处女群岛', zhTW: '英属维尔京群岛' },
namefull: { enUS: 'British Virgin Islands', zhCN: '英属维京群岛' }, namefull: { enUS: 'British Virgin Islands', zhCN: '英属维京群岛' },
@ -3859,7 +3863,7 @@ module.exports = {
iso3: 'VIR', iso3: 'VIR',
isoName: 'VIRGIN ISLANDS (U.S.)', isoName: 'VIRGIN ISLANDS (U.S.)',
isod: '850', isod: '850',
itc: '1 340', itc: '1340',
legalstatus: '2', legalstatus: '2',
name: { enUS: 'U.S. Virgin Islands', zhCN: '美属维尔京群岛', zhHK: '美属处女群岛', zhTW: '美属维尔京群岛' }, name: { enUS: 'U.S. Virgin Islands', zhCN: '美属维尔京群岛', zhHK: '美属处女群岛', zhTW: '美属维尔京群岛' },
namefull: { enUS: 'the Virgin Islands of the United States', zhCN: '美属维京群岛' }, namefull: { enUS: 'the Virgin Islands of the United States', zhCN: '美属维京群岛' },

View File

@ -1,11 +1,19 @@
const landSet = require('./i18n-lands.js')
module.exports = { module.exports = {
validate_phone ({ phone, level = wo?.envar?.phoneStrict || wo?.ss?.envarRemote?.phoneStrict || 'LEN' } = {}) { validate_phone ({ phone, format } = {}) {
try {
if (typeof format === 'string') {
return new RegExp(format).test(callnumber)
}
} catch (exp) {
console.log('Invalid phone format: ', format)
}
try { try {
let [fullphone, itc, callnumber] = /^\+(\d{1,4})-(\d{7,12})$/.exec(phone) let [fullphone, itc, callnumber] = /^\+(\d{1,4})-(\d{7,12})$/.exec(phone)
let landSet = wo?.i18n?.landSet || wo?.ss?.i18n?.landSet || {}
for (let land of Object.values(landSet)) { for (let land of Object.values(landSet)) {
if (land.itc === itc) { if (land.itc === itc) {
console.log(land)
if (land.phoneRegex) { if (land.phoneRegex) {
return new RegExp(land.phoneRegex).test(callnumber) return new RegExp(land.phoneRegex).test(callnumber)
} else { } else {
@ -26,16 +34,16 @@ module.exports = {
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
*/ */
validate_email ({ email, format } = {}) { validate_email ({ email, format } = {}) {
let regex =
/^((?:[A-Za-z0-9!#$%&'*+\-\/=?^_`{|}~]|(?<=^|\.)"|"(?=$|\.|@)|(?<=".*)[ .](?=.*")|(?<!\.)\.){1,64})(@)((?:[A-Za-z0-9.\-])*(?:[A-Za-z0-9])\.(?:[A-Za-z0-9]){2,})$/
try { try {
if (typeof format === 'string') { if (typeof format === 'string') {
regex = new RegExp(format) return new RegExp(format).test(email)
} }
} catch (exp) { } catch (exp) {
console.log('Invalid email format: ', format) console.log('Invalid email format: ', format)
} }
let regex =
/^((?:[A-Za-z0-9!#$%&'*+\-\/=?^_`{|}~]|(?<=^|\.)"|"(?=$|\.|@)|(?<=".*)[ .](?=.*")|(?<!\.)\.){1,64})(@)((?:[A-Za-z0-9.\-])*(?:[A-Za-z0-9])\.(?:[A-Za-z0-9]){2,})$/
return regex.test(email) return regex.test(email)
}, },
} }