电话号码验证。仅允许0作为第一个数字

时间:2017-12-29 06:40:45

标签: jquery validation

我有一个电话号码验证,其中只有按键允许的号码,第一个号码应为0。 这是我的jquery脚本:

jQuery("#phone-number").keypress(function(ev){
    var x = document.getElementById("phone-number").value;
    // Don't ignore numbers.
    if ((ev.charCode >= 64 && ev.charCode <= 91) || (ev.charCode >= 96 && ev.charCode <= 123) && x.charAt(0)!="0" ) {
                alert("it should start with 0 ");
                return false;
    }

});

x.charAt(0)!="0"无法正常工作,因为任何数字都可以作为第1位传递。

5 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

&#13;
&#13;
// Just for demonstration. You can use it your way.
jQuery("#phone-number").keypress(function(ev){
    var x = $(this).val();
    
    if (ev.keyCode < 48 || ev.keyCode > 57) {
      alert("You should only enter numbers.");
      ev.preventDefault();
    }

});

// Add the keyup event and check with the regex.
jQuery("#phone-number").keyup(function(ev){
    var x = $(this).val();
    
    // Allow Backspace and Delete
    if (ev.keyCode == 8 || ev.keyCode == 46) {
      return true;
    }
    
    if (!x.match(/^0+/)) {
      alert("The first digit should be 0");
      $(this).val(x.substr(0,-1));
    }

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="phone-number" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="phone-number"/>
$(document).on('input','#phone-number',function(){
    var phone=$('#phone-number').val();
   if(phone.indexOf('0')!==0){
     alert('First number must be 0');
     $('#phone-number').val('');
   }
});

答案 2 :(得分:0)

您可以将此正则表达式添加到输入中。

<input id="phone-number" type="text" pattern="[0][0-9]{9}" />

pattern="[0][0-9]{9}"表示第一个数字应为0,其余9个数字表示0到9

此处{9}是前0后的数字长度。

答案 3 :(得分:0)

您也可以在表单提交前使用下面的模式

进行检查
    $('#myform').on('submit', function(){
        var value = $('#phone-number').val()
        var regex = new RegExp(/^\+?[0][0-9(),.-]{9}$/);
        if(value.match(regex)) {return true;}
          return false;
    });

答案 4 :(得分:0)

您可以使用两个正则表达式来替换非零起始字符和其他非数字。要在键入时执行此操作,我使用了keyup(因为keypress在textbox值包含最新字符之前发生):

$('#phone-number').keyup(function() {
    $(this).val(
        $(this).val()
            .replace(/^[^0]*/, '') // Remove starting non-zero characters
            .replace(/[^\d]*/g, '') // Remove non-digit characters
        );
    }
);