-3

任何人都可以帮助如何使用加纳号码格式验证此脚本中的手机号码。该脚本仅使用印度手机号码进行验证。我想使用加纳手机号码来验证代码。

加纳手机号码以 02 或 05 开头。谢谢。

     pic1 = new Image(16, 16); 
pic1.src = "images/loader.gif";

/*function mobile_validation(mobile_number)
{
    var first_digit = mobile_number.charAt(0);
    var number_length = mobile_number.length;
    if(!isValid(mobile_number, 'numeric'))
        return "Please enter valid mobile number.";
    if(mobile_number.indexOf("+91") != -1 || mobile_number.indexOf("0") == 0 || number_length != 10) //ghana country code is +233
        return "Please enter valid mobile number.";
    if(first_digit != 9 && first_digit != 8 && first_digit != 7) //want to change to 02 or 05
        return "Please enter a valid mobile number.";
    if(mobile_number == "9867045061")
        return "Please enter a valid mobile number.";
    return "valid";
}*/

$(document).ready(function(){

$("#mobile").change(function() { 

var usr = $("#mobile").val();
var first_digit = usr.charAt(0);
var number_length = usr.length;

if(usr.length == 10 && !isNaN(usr) && first_digit == 9 || first_digit == 8 || first_digit == 7) // want to change to 02 or 05
{
$("#statusmb").html('<img src="images/loader.gif" align="absmiddle">&nbsp;Sending Verification Code...');

    $.ajax({  
    type: "POST",  
    url: "verify_mobile.php",  
    data: "mobile="+ usr,  
    success: function(msg){  

   $("#statusmb").ajaxComplete(function(event, request, settings){ 

    if(msg == 'OK')
    { 
        $("#mobile").removeClass('object_error'); // if necessary
        $("#mobile").addClass("object_ok");
        $(this).html('&nbsp;<img src="images/ok.png" align="absmiddle">&nbsp;Verification Code Sent to Mobile');
        document.getElementById('btnSubmit').disabled =false;
    }  
    else  
    {  
        $("#mobile").removeClass('object_ok'); // if necessary
        $("#mobile").addClass("object_error");
        $(this).html(msg);
        document.getElementById('btnSubmit').disabled =true;
    }  

   });

 } 

  }); 

}
else
    {
    $("#statusmb").html('&nbsp;<img src="images/alert.png" align="absmiddle">&nbsp;<font color="red">Please Enter <strong>Valid</strong> Mobile No.</font>');
    $("#mobile").removeClass('object_ok'); // if necessary
    $("#mobile").addClass("object_error");
    }

});

});
4

3 回答 3

2

您可以使用正则表达式作为

var regexMobile = /^[0-9]+$/;
if (mobileLength < 10 || !mobile.match(regexMobile)) {
    document.getElementById("mobile_error").innerHTML = "Enter valid 10 digit Mobile Number";
    return false;
}
于 2013-12-30T06:56:53.847 回答
0

使用正则表达式可以更好地处理手头的问题。该脚本在匹配印度数字模式方面做得很糟糕。

此外,就目前而言,脚本似乎正在对长度和起始数字进行基本验证,然后将其发送到服务器以进行进一步(可能更深入)验证,如该行所示

url: "verify_mobile.php",

如果这也是你正在做的,那么你可以简单地改变线

if(usr.length == 10 && !isNaN(usr) && first_digit == 9 || first_digit == 8 || first_digit == 7) // want to change to 02 or 05

if(usr.length == 10 && !isNaN(usr) && first_digit == 0)

假设加纳数字的长度也是 10。

如果您不想坚持使用脚本,请使用其他答案中提供的正则表达式(我推荐)。

于 2012-10-21T13:05:53.020 回答
0

假设格式为 02 或 05,后跟未定义的数字。那么这个正则表达式应该做:

function mobile_validation(mobile_number){
 return mobile_number.match(/^0[2,5]{1}[0-9]+$/) == null? "Please enter a valid mobile number.": "Valid"
}
于 2012-10-21T13:00:19.417 回答