全球电话号码正则验证封装

近日,小程序有个需求,需要全球电话号码正则验证,小小封装不成敬意,不足之处,留下宝贵意见! 

言尽于此,直接上代码:

/**
 * 底层 全球电话号码 正则验证 
 **/ 
export function GLOBALPHONE(c,p){
    let e = c, g = new Map([
        ['ar-DZ', /^(\+?213|0)(5|6|7)\d{8}$/],
        ['ar-SY', /^(!?(\+?963)|0)?9\d{8}$/],
        ['ar-SA', /^(!?(\+?966)|0)?5\d{8}$/],
        ['en-US', /^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/],
        ['cs-CZ', /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/],
        ['de-DE', /^(\+?49[ \.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/],
        ['da-DK', /^(\+?45)?(\d{8})$/],
        ['el-GR', /^(\+?30)?(69\d{8})$/],
        ['en-AU', /^(\+?61|0)4\d{8}$/],
        ['en-GB', /^(\+?44|0)7\d{9}$/],
        ['en-HK', /^(\+?852\-?)?[569]\d{3}\-?\d{4}$/],
        ['en-IN', /^(\+?91|0)?[789]\d{9}$/],
        ['en-NZ', /^(\+?64|0)2\d{7,9}$/],
        ['en-ZA', /^(\+?27|0)\d{9}$/],
        ['en-ZM', /^(\+?26)?09[567]\d{7}$/],
        ['es-ES', /^(\+?34)?(6\d{1}|7[1234])\d{7}$/],
        ['fi-FI', /^(\+?358|0)\s?(4(0|1|2|4|5)?|50)\s?(\d\s?){4,8}\d$/],
        ['fr-FR', /^(\+?33|0)[67]\d{8}$/],
        ['he-IL', /^(\+972|0)([23489]|5[0248]|77)[1-9]\d{6}/],
        ['hu-HU', /^(\+?36)(20|30|70)\d{7}$/],
        ['it-IT', /^(\+?39)?\s?3\d{2} ?\d{6,7}$/],
        ['ja-JP', /^(\+?81|0)\d{1,4}[ \-]?\d{1,4}[ \-]?\d{4}$/],
        ['ms-MY', /^(\+?6?01){1}(([145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/],
        ['nb-NO', /^(\+?47)?[49]\d{7}$/],
        ['nl-BE', /^(\+?32|0)4?\d{8}$/],
        ['nn-NO', /^(\+?47)?[49]\d{7}$/],
        ['pl-PL', /^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/],
        ['pt-BR', /^(\+?55|0)\-?[1-9]{2}\-?[2-9]{1}\d{3,4}\-?\d{4}$/],
        ['pt-PT', /^(\+?351)?9[1236]\d{7}$/],
        ['ru-RU', /^(\+?7|8)?9\d{9}$/],
        ['sr-RS', /^(\+3816|06)[- \d]{5,9}$/],
        ['tr-TR', /^(\+?90|0)?5\d{9}$/],
        ['vi-VN', /^(\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$/],
        ['zh-CN', /^(\+?0?86\-?)?1[345789]\d{9}$/],
        ['zh-TW', /^(\+?886\-?|0)?9\d{8}$/]
    ]);
    return new Promise(( resolve, reject) => {
        resolve(g.get(e).test(p));
    })
};

使用方法:  参数c和p,代表国家/地区代码段和电话号码------------------------------------------------|

         GLOBALPHONE('zh-CN',Phone).then( r => {
            console.log(`Verification:`,r);
         })

返回值是Boolean类型!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值