我编写了以下代码,用于验证接受手机号码的表格输入,条件是最大数字11,从0开始,否则显示错误:请输入有效的手机号码
我写了一个函数,但它无法正常工作。如果我输入的数字超过11,那么表格就是真的。即使我写了一个没有0的数字,它也会接受。 这是我的代码:
$('#mobili').focusout(function() {
$('#mobili').filter(function() {
var mobi = $('#mobili').val();
var mobiback = $('#mobili');
var mobilReg = /(\+989|9|09)(12|19|35|36|37|38|39|32)\d{7}/;
if (!mobilReg.test(mobi)) {
$('#mobili').css('background-color', '#ff6666');
$("#error-nwl").css('color', '#ff6666');
$("#error-nwl").text("please enter a valid mobile number");
} else {
$('#mobili').css('background-color', '#66cc66');
$("#error-nwl").css('color', '#66cc66');
$("#error-nwl").text("ok");
}
})
});
<html>
<head>
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<input type="tel" name="field1" id="mobili" />
<input type="submit" />
<div id="error-nwl"></div>
</form>
</body>
</html>
答案 0 :(得分:1)
我从你的问题得到的是你需要正则表达式验证字段,它应该接受从0开始的11位数字所以使用正则表达式
/^([0][0-9]{10})$/
您可以使用
修改输入中的最大长度maxlength="11"
$('#mobili').focusout(function() {
$('#mobili').filter(function() {
var mobi = $('#mobili').val();
var mobiback = $('#mobili');
var mobilReg = /^([0][0-9]{10})$/;
if (!mobilReg.test(mobi)) {
$('#mobili').css('background-color', '#ff6666');
$("#error-nwl").css('color', '#ff6666');
$("#error-nwl").text("please enter a valid mobile number");
} else {
$('#mobili').css('background-color', '#66cc66');
$("#error-nwl").css('color', '#66cc66');
$("#error-nwl").text("ok");
}
})
});
<html>
<head>
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<input type="tel" name="field1" id="mobili" maxlength="11" />
<input type="submit" />
<div id="error-nwl"></div>
</form>
</body>
</html>