Javascript 用于验证手机号码的正则表达式

Javascript 用于验证手机号码的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我使用正则表达式在Javascript中验证手机号码 我的条件是: 手机号码可以以+60或+63或+62或+66或0开头 手机号码的长度在9到13之间 我已尝试使用以下代码: ^(?:\+60|+63|+62|+66|0)[. ()-]*(?:\d[. ()-]*){10,11,12,13}$/; 但我没有明白 手机号码示例如下: +601126314441 01126342542 +631124445675 +661124445675 +621124445675 +60111243236 +

我使用正则表达式在Javascript中验证手机号码

我的条件是:

  • 手机号码可以以+60或+63或+62或+66或0开头
  • 手机号码的长度在9到13之间
  • 我已尝试使用以下代码:

    ^(?:\+60|+63|+62|+66|0)[. ()-]*(?:\d[. ()-]*){10,11,12,13}$/;
    
    但我没有明白

    手机号码示例如下:

    +601126314441
    01126342542
    +631124445675
    +661124445675
    +621124445675
    +60111243236
    +62105273214
    0105273214
    
    像这样更新您的正则表达式:

    /^(\+60|\+63|\+62|\+66|0)\d{9,13}$/gm
    
    在www.jsregex.com上验证(别忘了检查全局和多行选项)

    Javascript:
    var reg=/(\+60 |\+63 |\+62 |\+66 | 0)\d{9,13}/m;
    变量编号=[“+601126314441”、“01126342542”、“+631124445675”、“+661124445675”、“+621124445675”、“+60111243236”、“+62105273214”、“0105273214”];
    var匹配=[];
    对于(变量i=0;i
    您可以使用本例中的regexp-

    $a = array(
    '+601126314441',
    '01126342542',
    '+631124445675',
    '+6611244-45675',
    '+621124445675',
    '+60111243236',
    '+62105273214',
    '01052-73214',
    );
    
    foreach($a as &$phone) {
        echo $phone . ' -> ';
        if (preg_match('/^(?:\+60|\+63|\+62|\+66|0)[0-9-]{9,13}$/', $phone)) {
            echo 'PASS';
        } else {
            echo 'FAIL';
        }
        echo PHP_EOL;
    }
    
    在php中,这将输出以下内容:

    +601126314441 -> PASS
    01126342542 -> PASS
    +631124445675 -> PASS
    +6611244-45675 -> PASS
    +621124445675 -> PASS
    +60111243236 -> PASS
    +62105273214 -> PASS
    01052-73214 -> PASS
    

    如果代码长度包括完整的手机号码,您可以尝试

    /^(\+6[0236]\d{7,11})|(0\d{8,12})$/
    
    如果
    +
    也包含在数字长度中,则

    /^(\+6[0236]\d{6,10})|(0\d{8,12})$/
    
    否则试试

    /^(\+6[0236]|0)\d{9,13}$/
    
    嗯,有趣:)

    Java脚本代码:

    // your regex pattern to check mobile number
    var mobRegex = /^(\+60|\+63|\+62|\+66|0)\d{9,13}$/;
    // empty array
    var validMobile = [];
    // some sample numbers to check
    var mobileCollection = [
        '+60123456789',
        '+691234567891',
        '+6012345678912',
        '+60123456789123',
        '+601234567891234',
        '+63123456789',
        '+631WE234567891',
        '+6312345678912',
        '+63123456789123',
        '+6312 34567891234',
        '+62123456789',
        '+621234567891',
        '+6212345678912',
        '+62123456789123',
        '+6212-34567891234',
        '+66123456789',
        '+661234567891',
        '+6612345678912',
        '+66123456789123',
        '+661234OP7891234',
        '0123456789',
        '01234567891',
        '+9112445678912',
        '0123456789123',
        '01234567891234'
    ];
    // check every number and file right one
    for (var i = 0; i < mobileCollection.length; i++) {
        if (mobRegex.test(mobileCollection[i])) {
            validMobile.push(mobileCollection[i]);
        }
    }
    // alert all valid mobile number
    alert(validMobile.toString());
    // here is output
    +60123456789,+6012345678912,+60123456789123,+601234567891234,+63123456789,
    +6312345678912,+63123456789123,+62123456789,+621234567891,+6212345678912,
    +62123456789123,+66123456789,+661234567891,+6612345678912,+66123456789123,
    0123456789,01234567891,0123456789123,01234567891234 
    
    //检查手机号码的正则表达式模式
    var mobRegex=/^(\+60 \+63 \+62 \+66 \+0)\d{9,13}$/;
    //空数组
    var validMobile=[];
    //一些要检查的样本编号
    var mobileCollection=[
    '+60123456789',
    '+691234567891',
    '+6012345678912',
    '+60123456789123',
    '+601234567891234',
    '+63123456789',
    “+631WE234567891”,
    '+6312345678912',
    '+63123456789123',
    '+6312 34567891234',
    '+62123456789',
    '+621234567891',
    '+6212345678912',
    '+62123456789123',
    '+6212-34567891234',
    '+66123456789',
    '+661234567891',
    '+6612345678912',
    '+66123456789123',
    “+661234OP7891234”,
    '0123456789',
    '01234567891',
    '+9112445678912',
    '0123456789123',
    '01234567891234'
    ];
    //检查每个号码,并将其归档
    对于(var i=0;i
    这可能有助于您发布一个应该匹配但不匹配的数字示例?或者是一个号码不匹配的例子,但应该更新手机号码。@GuntramBlohm@PravinKumar只有这个条件?或者其他类似方括号的东西?那么试试这个
    /(\+60 |\+63 |\+62 |\+66 | 0)\d{9,13}/
    这个regexp,如果匹配的数字以+6[0236]开头,它将包含11到15个数字,如果它以0开头,则包含10到14个数字。您应该修改\d{9,13}部分。@Valentin可能不包括mobile的代码长度length@Grundy需求不够明确,无法确定,这是真的:)是的,我只是根据他最初的数字,我相信他可以调整它来计算正确的数字。不幸的是我对这些电话号码分配一无所知哈哈
    /^(\+6[0236]|0)\d{9,13}$/
    
    // your regex pattern to check mobile number
    var mobRegex = /^(\+60|\+63|\+62|\+66|0)\d{9,13}$/;
    // empty array
    var validMobile = [];
    // some sample numbers to check
    var mobileCollection = [
        '+60123456789',
        '+691234567891',
        '+6012345678912',
        '+60123456789123',
        '+601234567891234',
        '+63123456789',
        '+631WE234567891',
        '+6312345678912',
        '+63123456789123',
        '+6312 34567891234',
        '+62123456789',
        '+621234567891',
        '+6212345678912',
        '+62123456789123',
        '+6212-34567891234',
        '+66123456789',
        '+661234567891',
        '+6612345678912',
        '+66123456789123',
        '+661234OP7891234',
        '0123456789',
        '01234567891',
        '+9112445678912',
        '0123456789123',
        '01234567891234'
    ];
    // check every number and file right one
    for (var i = 0; i < mobileCollection.length; i++) {
        if (mobRegex.test(mobileCollection[i])) {
            validMobile.push(mobileCollection[i]);
        }
    }
    // alert all valid mobile number
    alert(validMobile.toString());
    // here is output
    +60123456789,+6012345678912,+60123456789123,+601234567891234,+63123456789,
    +6312345678912,+63123456789123,+62123456789,+621234567891,+6212345678912,
    +62123456789123,+66123456789,+661234567891,+6612345678912,+66123456789123,
    0123456789,01234567891,0123456789123,01234567891234