2018最新版 手机号、验证码正则表达式 jq + 小程序
HTML:
<!-- 表单 -->
<input class="weui-input" id="tel" type="tel" placeholder="请输入手机号">
<input class="weui-input" type="number" id="number" placeholder="请输入验证码"> <!-- 错误提示 -->
<div class="mobile-err" id="mobile-err" style="display: none;">
<span></span>
</div>
JS :
$(function () {
//手机号验证
$("#tel").blur(function () {
var mobile=$(this).val();
var re=/^((([-]{})|([-]{})|([-]{})|([-]{}))+\d{})$/;
if (!re.test(mobile)){
$("#mobile-err span").html("请输入正确的手机号");
$("#mobile-err").show();
}
setTimeout(function () {
$("#mobile-err").fadeOut();
},)
});
//验证码验证 5位数字
$("#number").blur(function () {
var mobile=$(this).val();
var re=/^\d{}$/
if (!re.test(mobile)){
$("#mobile-err span").html("验证码错误");
$("#mobile-err").show();
}
setTimeout(function () {
$("#mobile-err").fadeOut();
},)
});
})
小程序
<view class="section">
<input placeholder="手机号" placeholder-style='color:#999;' type="number" auto-focus bindblur='telNum' />
</view>
<view class="section get-code cl">
<input placeholder="验证码" placeholder-style='color:#999;' type="number" maxlength="" bindblur='codeNum'/>
<button bindtap='getCode' class='get-code-btn' disabled="{{disabled}}">{{codeTxt}}</button>
</view>
<view class='btm-btn-ot'>
<form bindsubmit="submitBtn" report-submit="true">
<button class="form_button" form-type="submit">
<button class='sub-btn'>登录</button>
</button>
</form>
</view>
data: {
mobile:, //输入是否正确
code:,
mobileNum:'', //输入的手机号
codeNum:'',
codeTxt:'', //获取验证码 文字
disabled:'',
currentTime:
},
onLoad: function (options) {
var that = this;
that.setData({
codeTxt: '获取验证码'
})
},
// /**
// * 手机号
// */
telNum: function (e) {
var that = this;
var mobile = e.detail.value;
var myreg = /^((([-]{})|([-]{})|([-]{})|([-]{}))+\d{})$/;
if (mobile.length == ) {
wx.showToast({
title: '手机号为空',
icon: 'loading',
success:function(){
that.setData({
mobile: ,
})
}
})
return false;
} else if (!myreg.test(mobile)) {
wx.showToast({
title: '手机号有误',
icon: 'loading',
success: function () {
that.setData({
mobile: ,
})
}
})
return false;
} else {
that.setData({
mobile: ,
mobileNum: mobile,
})
}
},
// /**
// * 验证码
// */
codeNum: function (e) {
var that = this;
var code = e.detail.value;
var myreg = /^\d{}$/;
if (code.length == ) {
wx.showToast({
title: '验证码为空',
icon: 'loading',
success: function () {
that.setData({
code: ,
})
}
})
return false;
} else if (!myreg.test(code)) {
wx.showToast({
title: '验证码有误',
icon: 'loading',
success: function () {
that.setData({
code: ,
})
}
})
return false;
} else {
that.setData({
code: ,
codeNum: code
})
}
},
//验证码
getCode:function(){
let that = this;
if (that.data.mobile==){
wx.request({
url: _url + '/api/sendsms',
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
phone: that.data.mobileNum,
},
success: function (e) {
console.log(e.data)
if (e.data.status == ) {
//发成功后不可点击
that.setData({
disabled: true
})
//60秒倒计时
var currentTime = that.data.currentTime;
that.setData({
codeTxt: '重新获取(' + currentTime + 's)'
})
var interval = setInterval(function () {
that.setData({
codeTxt: '重新获取(' + (currentTime - ) + 's)'
})
currentTime--;
if (currentTime <= ) {
clearInterval(interval)
that.setData({
codeTxt: '重新获取',
currentTime: ,
disabled: ''
})
}
}, )
wx.showToast({
title: '正确',
icon: 'success',
success: function () {
wx.showToast({
title: '请注意查收',
icon: 'success',
})
}
})
} else if (e.data.status == ) {
wx.showToast({
title: '验证码错误',
icon: 'loading',
})
}
}
})
}
},
//提交
submitBtn:function(e){
let that = this;
var m = that.data.mobile;
var c = that.data.code;
//判断 手机号和验证码格式无误后返回后台
if (m == || c == ) {
}else{
wx.showToast({
title: '错误',
icon: 'loading',
})
}
}
page{
padding: 56rpx;
background: #fff;
box-sizing: border-box;
}
.section{
height: 114rpx;
border-bottom: 1rpx solid #ebebeb ;
margin-bottom: 20rpx;
}
.section input{
width: %;
height: %;
line-height: 114rpx;
}
.get-code input{
width: 350rpx;
float: left;
font-size: 32rpx;
}
.get-code button{
/* display: inline-block; */
float: right;
color: #553a91;
font-size: 30rpx;
border: 1rpx solid #c8c0dc;
background: transparent;
border-radius: 32rpx;
padding: 20rpx 26rpx;
margin:22rpx ;
line-height: ;
}
.btm-btn-ot{
margin-top: 100rpx;
width: %;
box-sizing: border-box;
background: #fff;
}
.sub-btn{
width:%;
text-align:center;
background: rgba(, , , .);
padding:30rpx ;
color:#fff;
font-size:32rpx;
border-radius:48rpx;
font-weight:;
display:inline-block;
border:;
line-height:;
margin-bottom: 40rpx;
}
.sub-btn::after{
border:;
}
.sub-btn.active {
background:#553a91;
}
2018最新版 手机号、验证码正则表达式 jq + 小程序的更多相关文章
- Spring Security 一键接入验证码登录和小程序登录
最近实现了一个多端登录的Spring Security组件,用起来非常丝滑,开箱即用,可插拔,而且灵活性非常强.我觉得能满足大部分场景的需要.目前完成了手机号验证码和微信小程序两种自定义登录,加上默认 ...
- 2018年1月12日--微信小程序----出错报告(40kb的原因)---并解决方法
一. 报错的原因是因为,图片的文件太大了,已经超过了40kb...不能超过40kb. 在这里查看图片文件的大小:
- 微信小程序 - 接口更新记录以及解决方案(2018/12/26)
2018/8/17 - 背景音频需要在app.json添加requireBackGroundModes 2018/9/12 - 微信更改获取用户信息接口/获取位置等接口 - button 2018/1 ...
- 新手指南:顶象验证码如何接入微信小程序?
自2017年小程序发布以来,经过4年的快速发展,小程序已然成为企业互联网布局不可或缺的一环.无论是互联网企业还是拥抱互联网的传统企业,无论是服务导向型企业还是产品导向型企业,小程序都为用户提供了一种轻 ...
- 这个Spring Security登录插件牛啊,验证码、小程序、OAuth2都能快速接入
上次我们把验证码登录.小程序登录优雅地集成到了Spring Security,很多同学大呼过瘾,相比较一些传统玩法高级了很多.胖哥就赶紧抓住机会举一反三,把几个非标准的OAuth2也接入了进来,主要是 ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 「小程序JAVA实战」小程序多媒体组件(27)
转自:https://idig8.com/2018/08/19/xiaochengxujavashizhanxiaochengxuduomeitizujian27/ 来说下 ,小程序的多媒体组件.源码 ...
- 微信小程序期末复习
过什么六一,复习不完了... 第1章作业 一.单选题(共10题,100.0分) 1以下哪个不是主流的手机操作系统? A.Android B.iOS C.Windows Phone D.Blackber ...
- 小程序实践(十一):showModal的使用
显示模态对话框,确定和取消两个选择+标题+内容的对话框 . // 编辑用户性别 tapSex:function(res){ var that = this wx.showModal({ title: ...
随机推荐
- 网络通信框架之retrofit
主页: [https://github.com/square/retrofit](https://github.com/square/retrofit) 注意: 使用Retrofit的前提是**服务器 ...
- Uboot启动分析之Start.S
1.start.S引入 1.1.u-boot.lds中找到start.S入口 1)C语言中代码的分析第一步就是找到main.c,找到函数的入口 2)uboot中因为有汇编语言参与所以就不能像C一样.U ...
- oracle 导出关键字说明
关键字 说明(默认) ----------------------------------------- UserId 用户名/口令 Full 导出整个文件(N) Buff ...
- 阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
service能供成功的调用到service对象就算是整合成功 如果能把生成的代理对象也存大IOC的容器中.那么ServiceImpl就可以拿到这个对象 做一个注入,然后就可以调用代理对象的查询数据库 ...
- Spring学习之==>入门知识
一.Spring是什么? Spring 是一种轻量级的.非侵入式的 Java/JavaEE 应用框架.Spring 使用的是基本的 JavaBean 来完成以前只可能由EJB完成的事情.然而,Spri ...
- spring boot 整合redis
spring boot 中配置redis1 在pom.xml中增加相关包依赖:<dependency> <groupId>org.springframework.boot< ...
- 05 vue-cli如何运行
一.index.html index.html跟其他html一样,只有一个空的根节点,提供main.js用来挂载实例,所有内容通过vue来填充. 二.main.js main.js主要是引入vue框架 ...
- C#编程 线程,任务和同步(2) 开启线程
创建线程的几种方法: 1 异步委托 创建线程的一种简单方式是定义一个委托,并异步调用它. 委托是方法的类型安全的引用.Delegate类 还支持异步地调用方法.在后台,Delegate类会创建一个执行 ...
- &&、()、||决定linux命令的执行顺序
在执行某个命令时,有时需要依赖前面的命令是否执行成功.假如你想通过ssh命令复制很多数据文件到另外的机器后,删除所有源有文件,所以在删除源有文件之前首先要确定复制是不是执行成功.只要执行复制成功才可以 ...
- PhpMyAdmin提示未加密
新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码.否则进入之后会有“配置文件现在需要一个短语密码.”的红色警叹提示. 解决方法: .将 phpMyAdmin/librarie ...