我有一个电话号码验证,其中只有按键允许的号码,第一个号码应为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位传递。
答案 0 :(得分:2)
您可以执行以下操作:
// 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;
答案 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
);
}
);