发布网友
共5个回答
懂视网
这篇文章主要介绍了jQuery实现手机号正则验证输入及自动填充空格功能,涉及jQuery事件响应、字符串遍历及正则判断等相关操作技巧,需要的朋友可以参考下
本文实例讲述了jQuery实现手机号正则验证输入及自动填充空格功能。分享给大家供大家参考,具体如下:
先来看看运行效果(在删除时连删即可):
具体代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="text" id="inp"> <script src="jquery-1.12.3.min.js"></script> <script> $(function(){ $("#inp").keyup(function(){ /* 手机号验证时: var pattern = /^1[3|4|5|7|8]d{1}sd{4}sd{4}$/; pattern.test(str); */ _self = $(this); if(_self.val().length == 3 || _self.val().length == 8){ var str = _self.val()+" "; _self.val(str); } }); }); </script> </body> </html>
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
通过nodejs使用http模块发送请求(详细教程)
使用jQuery+CSS如何实现table表格
如何使用Vue实现评论框架
热心网友
<p>手机 : <input type="text" maxlength="11" id="shouji"><span></span></p>
<p>密码 : <input type="text" maxlength="11" id="password"><span></span></p>
<script>
var Val={
isMobile:function(s){return this.test(s,/(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/)},
isEmail:function(a){var b ="^[-!#$%&'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&'*+\\/0-9=?A-Z^_`a-z{|}~]+.[-!#$%&'*+\\./0-9=?A-Z^_`a-z{|}~]+$";
return this.test(a, b);},
isNumber:function(s,d){return !isNaN(s.nodeType==1?s.value:s)&&(!d||!this.test(s,"^-?[0-9]*\\.[0-9]*$"))},
isEmpty:function(s){return !jQuery.isEmptyObject(s)},test:function(s,p){s=s.nodeType==1?s.value:s;return new RegExp(p).test(s)}};
//上面给你一个常用的验证代码,比较使用
$("#shouji").blur(function(){
var v=$(this).val();
var n=$(this).next();
if(!Val.isMobile(v)){
n.html("<font color='red'>请输入正确的手机号码</font>");
$
}else{
n.text("正确");
}
});
//不需要返回false什么的 因为你不是提交表单,
$("#password").blur(function(){
var v=$(this).val();
var n=$(this).next();
if(v.length<6){
n.html("<font color='red'>密码不能少于6位</font>");
$
}else{
n.text("正确");
}
});
</script>
热心网友
$("#mobile").text('密码不能为空');追问密码格式不正确呢?
追答正则获取的是一个数组,用console.log(),来输出一下正则获取的结果,看看需要那个值
热心网友
密码格式的话用正则表达式
热心网友
你的问题是这样的,当输入是空的时候,你注册了一个事件,在输入框后面显示 enter,然后这个事件就一直在;接下来,你输入手机号,比如 123,这时候会执行第二个 if 里面的语句,
1、先把输入框后面的文字 替换成 “手机号码格式不正确!请重新输入!”
2、将焦点聚集在输入框上(注意这里,执行 focus() 会触发之前定义的事件,导致文字又变回了 “enter”)
这两步是一瞬间发生的,所以在你看来 输入 123 之后,鼠标失去焦点,文字是“enter”
解决方法,
if (!phone.val().match(/^[1][3][0-9]{9}$/)) {
$("#mobile").html("<font color='red'>手机号码格式不正确!请重新输入</font>");
$("#shouji").unbind("focus"); // 添加这行,在focus()之前先把绑定的 focus 处理事件去掉
$("#shouji").focus();
}