需求:使用正则表达式完成基本的表单验证
//获取所有的输入框
//账号验证
var input = document.querySelectorAll('input');
//按键弹起时出发验证
input[0].onkeyup = function () {
var value = this.value;
//声明一个判断用户名为字母数字下划线组成的6-18的字符串验证规则
var reg = /^[a-zA-Z0-9_]{6,18}$/ig;
if (reg.test(value)) {
this.style.border = 'blue 2px solid'
} else {
this.style.border = 'red 2px solid'
}
}
input[1].onkeyup = function () {
var value = this.value;
//声明一个判断密码为任意字符组成的6-18的字符串验证规则
var reg = /^.{6,18}$/ig;
if (reg.test(value)) {
this.style.border = 'blue 2px solid'
} else {
this.style.border = 'red 2px solid'
}
}
input[2].onkeyup = function () {
var value = this.value;
//声明一个判断以数字1-9开头长度为6-10的qq号码,且后缀为@qq.com的字符串验证规则
var reg = /^[1-9][0-9]{5,9}(@qq.com)$/ig;
if (reg.test(value)) {
this.style.border = 'blue 2px solid'
} else {
this.style.border = 'red 2px solid'
}
}
input[3].onkeyup = function () {
var value = this.value;
//声明一个判断以1/3/4/5/7开头的十一位的电话号码的验证规则
var reg = /^[1][3|4|5|7][0-9]{10}$/ig;
if (reg.test(value)) {
this.style.border = 'blue 2px solid'
} else {
this.style.border = 'red 2px solid'
}
}
input[4].onkeyup = function () {
var value = this.value;
//声明一个判断第一位为1-9最后一位为0-9大写x小写x长度为18位的身份证号的验证规则
var reg = /^[1-9][0-9]{16}[0-9Xx]$/ig;
if (reg.test(value)) {
this.style.border = 'blue 2px solid'
} else {
this.style.border = 'red 2px solid'
}
}
css+html
<style>
div {
height: 40px;
margin-top: 20px;
}
input {
outline: none;
height: 40px;
width: 300px;
}
</style>
<div>
<label>帐号:</label>
<input type="text">
</div>
<div>
<label>密码:</label>
<input type="password">
</div>
<div>
<label>邮箱:</label>
<input type="text">
</div>
<div>
<label>电话:</label>
<input type="text">
</div>
<div>
<label>身份证号:</label>
<input type="text">
</div>