一、功能介绍:
用正则表达式验证手机号、邮箱、身份证号、密码和密码强度。
二、使用方法:
以下几种是本次用到的正则表达式:
-
验证手机号
/^(14[0-9]|13[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$KaTeX parse error: Expected 'EOF', got '\d' at position 8: / 或 /^1\̲d̲{10}/
-
验证邮箱
/1+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$/
-
验证身份证号
/(\d{15}$)|(^\d{18}$)|(\d{17}(\d|X|x)$)/
-
验证密码
/2+\w{7}$/
三、示例代码:
regular.wxml
<!-- maxlength可输入最大长度,placeholder输入框为空时占位符 -->
<!-- bindchange输入框失去焦点时触发 -->
<!-- 加decode='true' 占位符 -->
<view>
<!-- 验证手机号 -->
<view class='row'>
<text decode='true'>手 机 号:</text>
<input name="phone" type="number" maxlength="11" bindchange="inputPhoneNum" placeholder="请输入11位手机号码" ></input>
</view>
<!-- 验证邮箱 -->
<view class='row'>
<text decode='true'>邮 箱:</text>
<input name="email" bindchange="inputemail" placeholder="请输入邮箱"></input>
</view>
<!-- 验证身份证号 -->
<view class='row'>
<text>身份证号:</text>
<input name="card" bindchange="inputcard" maxlength="18" placeholder="请输入身份证号"></input>
</view>
<!-- 验证密码 -->
<view class='row'>
<text decode='true'>密 码:</text>
<input name="password" bindchange="inputpassword" maxlength="8" placeholder="请输入8位字母数字(区分大小写)"></input>
</view>
</view>
regular.wxss
.row{
display: flex;
align-items: center;
margin-bottom: 0.8rem;
}
.row text{
flex-grow: 1;
text-align: left;
margin-left: 30rpx;
}
.row input{
font-size: 0.9rem;
color: rgb(92, 89, 89);
flex-grow: 4;
border: 1px solid rgb(141, 141, 150);
display: inline-block;
border-radius: 0.3rem;
padding: 0.3rem;
}
regular.js
Page({
// 输入框的初始值为空
// 手机号:phone 邮箱:email 身份证号:card 密码:password
data: {
phone: "",
email: "",
card: "",
password: "",
},
// 验证手机号部分
inputPhoneNum: function (e) {
let phoneNumber = e.detail.value
let checkedNum = this.checkPhoneNum(phoneNumber)
},
// 开始验证
checkPhoneNum: function (phoneNumber) {
let str = /^1\d{10}$/ //手机号不足11位正则
// 判空
if (phoneNumber == "") {
wx.showToast({ //显示弹出消息
title: '手机号不能为空',
// duration: 4000, //延迟弹出时间
})
} else
// 判断是否符合
if (str.test(phoneNumber)) {
return true
} else {
wx.showToast({ //显示弹出消息
title: '手机号不正确',
// duration: 4000, //延迟弹出时间
})
return false
}
},
// -------------------------------------------------------------
// 验证邮箱验证部分
inputemail: function (e) {
let email = e.detail.value
let checkedNum = this.checkEmail(email)
},
// 开始验证
checkEmail: function (email) {
let str = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/ //邮箱正则
// 判空
if (email == "") {
wx.showToast({ //显示弹出消息
title: '邮箱不能空',
// duration: 4000, //延迟弹出时间
})
} else
// 判断是否符合
if (str.test(email)) {
return true
} else {
wx.showToast({ //显示弹出消息
title: '邮箱不正确',
// duration: 4000, //延迟弹出时间
})
return false
}
},
// ---------------------------------------------------------
// 验证身份证号部分
inputcard: function (e) {
let card = e.detail.value
let checkedNum = this.checkCard(card)
},
// 开始验证
checkCard: function (card) {
let str = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ //身份证号正则
// 判空
if(card==""){
wx.showToast({ //显示弹出消息
title: '身份证号不能空',
// duration: 4000, //延迟弹出时间
})
} else
// 判断是否符合
if (str.test(card)) {
return true
} else {
wx.showToast({ //显示弹出消息
title: '身份证号不正确',
// duration: 4000, //延迟弹出时间
})
return false
}
},
// ---------------------------------------------------------
// 验证密码
inputpassword: function (e) {
let password = e.detail.value
let checkedNum = this.checkaPssword(password)
},
// 开始验证
checkaPssword: function (password) {
let str = /^[A-Za-z0-9]+\w{7}$/ //验证密码正则
// 判空
if (password==""){
wx.showToast({ //显示弹出消息
title: '密码不能空',
// duration: 4000, //延迟弹出时间
})
} else
// 判断是否符合
if (str.test(password)) {
return true
} else {
wx.showToast({ //显示弹出消息
title: '密码不正确',
// duration: 4000, //延迟弹出时间
})
return false
}
}
})