利用正则表达式、form表单、失去焦点函数制作一个简单的表单验证:
Js代码如下:
<script>
var reg=/^[a-zA-Z0-9_-]{6,16}$///允许用户输入英文字母(不区分大小写)数字短横线下划线长度为6~16位的正则表达式
var reg1=/^[a-zA-Z0-9]{8,16}$/
var uname=document.querySelector('.uname')//获取元素
var passw=document.querySelector('.passw')
var passwo=document.querySelector('.passwo')
var span1=document.querySelector('.span1')
var span2=document.querySelector('.span2')
var span3=document.querySelector('.span3')
var zc=document.querySelector('#zc')
uname.onblur=function(){//给uname注册失去焦点的函数
if(reg.test(this.value)){//符合正则表达式
span1.className='success'
span1.innerHTML='用户名可用'
}else{
span1.className='wrong'
span1.innerHTML='用户名不可用'
}
}
passw.onblur=function(){
if(reg1.test(this.value)){
span2.className='success'
span2.innerHTML='密码可用'
}else{
span2.className='wrong'
span2.innerHTML='密码不可用'
}
}
passwo.onblur=function(){
if(this.value==passw.value){
span3.className='success'
span3.innerHTML='密码一致'
}else{
span3.className='wrong'
span3.innerHTML='密码不一致'
}
}
zc.onclick=function(){
if(span1.className=='success'&&span2.className=='success'&&span3.className=='success'){//三个input控件都满足正则时
alert('注册成功')
}
}
</script>
css和body代码如下:
<style>
.success{//满足正则,显示绿色字
color:green;
}
.wrong{
color: red;
}
</style>
<body>
<input type='text' class='uname'><span class='span1'></span><br><br>
<input type='password' class='passw'><span class='span2'></span><br><br>
<input type='password' class='passwo'><span class='span3'></span><br><br>
<button id='zc'>注册</button> <button>登录</button>
</body>