以下是之前练习正则表达式时候做的js表单测试.
input里的value用.test()比较以后,处理正则和需求,反馈,代码欠优化,但功能完善,仅供参考学习

html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新用户注册</title>
<link rel="stylesheet" href="./css/regForm.css" type="text/css">
<script type="text/javascript" src="js/regForm.js"></script> <!--外部样式和JS*-->
</head>
<body>
<div id="section">
<form action="" method="get" id="form">
<table id="table">
<tr>
<td>用户名</td>
<td><input id="username" type="text" class="text"></td>
<td><div class="icon" id="usernameicon"></div></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" class="text" id="email"></td>
<td><div class="icon" id="emailicon">(请输入正确的Email地址)</div></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" id="password"></td>
<td><div id="pwicon" class="icon">(请输入强度较高的密码)</div></td>
</tr>
<tr>
<td>密码强度</td>
<td>
<div class="pwstrength" id="low">弱</div>
<div class="pwstrength" id="middle">中</div>
<div class="pwstrength" id="strong">强</div>
</td>
<td></td>
</tr>
<tr>
<td>确认密码</td>
<td><input id="cfpw" type="password" class="text" value=""></td>
<td><div class="icon" id="cfpwicon"></div></td>
</tr>
<tr>
<td>MSN</td>
<td><input id="msn" type="text" class="text">
</td>
<td><div class="icon" id="msnicon"></div></td>
</tr>
<tr>
<td>QQ</td>
<td><input type="text" class="text" id="qq">
</td>
<td><div id="qqicon" class="icon">(请输入正确的QQ号码)</div></td>
</tr>
<tr>
<td>办公电话</td>
<td><input id="offphone" type="text" class="text"></td>
<td><div class="icon" id="offphoneicon"></div></td>
</tr>
<tr>
<td>家庭电话</td>
<td><input id="homephone" type="text" class="text">
</td>
<td><div class="icon" id="homephoneicon"></div></td>
</tr>
<tr>
<td>手机</td>
<td ><input type="text" class="text" id="phone"></td>
<td><div class="icon" id="phoneicon">(请输入正确的手机号)</div></td>
</tr>
<tr>
<td>密码提示问题</td>
<td>
<select class="text" name="question" value="">
<option value="" selected>请选择密码提示问题</option>
<option value="">你热爱编程吗?</option>
<option value="">你的中学名字是?</option>
<option value="">最开心的事是什么?</option>
</select>
</td>
<td></td>
</tr>
<tr>
<td>密码问题答案</td>
<td><input id="answer" type="text" class="text"></td>
<td><div class="icon" id="answericon"></div></td>
</tr>
<tr>
<td></td>
<td class="lasttext"><input type="radio">我已看过并接受《<a href="">用户协议</a>》</td>
<td></td>
</tr>
<tr>
<td></td>
<td><input type="image" src="image/login.png" id="login"></td>
<td></td>
</tr>
</table>
</form>
</div>
</body>
</html>
css部分>>
body{
background:url("../image/10.png") repeat-x;
}
#section{
width:1002px;
height:612px;
margin:15px auto;
position:relative;
}
#table{
width:600px;
height:550px;
background-color:#fff;
position:absolute;
font-size:18px;
line-height:5px;
border-radius: 5px;
box-shadow: 0 0 15px 2px rgba(0, 0, 0, 0.4);
padding: 20px 30px;
box-sizing: border-box;
width: 80%;
margin: 0 10%;
}
#table .pwstrength{
float:left;
height:30px;
width:60px;
line-height:30px;
text-align:center;
border-radius:4px;
color:#000;
}
#table .text{
width:215px;
height:32px;
}
#password{
width:215px;
height:32px;
}
#table .lasttext{
font-size:14px;
}
#table tr td{
width:180px;
}
#table .icon{
width:175px;
height:24px;
float:left;
background:no-repeat;
font-size:12px;
color:#000;
text-align:right;
line-height:24px;
}
javascript部分,这边使用的是dom2级操作,先封装好事件对象,在IE和非IE的情况下进行操作
//封装一下兼容性函数
var EV ={
//绑定事件兼容
addEvent:function(node,ename,fn){
if(navigator.userAgent.toLowerCase().indexOf("ie")!=-1){ //在ie下添加绑定事件
node.attachEvent("on"+ename,fn);
}else{
node.addEventListener(ename,fn,false);
}
},
removeEvent:function(node,ename,fn){
if(navigator.userAgent.toLowerCase().indexOf("ie")!=-1){ //在ie下添加绑定事件
node.detachEvent("on"+ename,fn);
}else{
node.removeEventListener(ename,fn,false);
}
}
}
window.onload=function(){
//email地址检测 html事件处理
var eMail = document.getElementById("email");
EV.addEvent(eMail,"blur",checkEmail);
function checkEmail(){
var email = document.getElementById("email").value;
var emailicon = document.getElementById("emailicon");
var epatt = new RegExp("\\w+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]{2,14}");
//利用正则表达式
if(epatt.test(email)){
emailicon.style.backgroundImage="url('image/tick.png')";
emailicon.innerHTML="";
}
else{
emailicon.style.backgroundImage="url('image/cross.png')";
emailicon.innerHTML="请输入正确的邮箱地址!";
emailicon.style.color="#dd0000";
}
}
//密码强度检测
var pwd =document.getElementById("password");
EV.addEvent(pwd,"blur",checkCode);
function checkCode(){
var pwdv =document.getElementById("password").value;
var low =document.getElementById("low");
var middle =document.getElementById("middle");
var strong =document.getElementById("strong");
var pwssicon =document.getElementById("phoneicon");
var pwdpatt1 = /\d+/g; //数字
var pwdpatt2 = /[a-zA-Z]+/g; //字母
var pwdpatt3 = /(\W)+/g; //特殊字符
var booldata1,booldata2,booldata3;
if(pwdv.length<6){
pwicon.style.backgroundImage="url('image/cross.png')";
pwicon.innerHTML="密码不得少于6位数!";
pwicon.style.color="#dd0000";
}
if(pwdv==""){
pwicon.style.backgroundImage="url('image/cross.png')";
pwicon.innerHTML="密码项不能为空!";
pwicon.style.color="#dd0000";
}
if(pwdpatt1.test(pwdv)){
booldata1 = true;
}
if(pwdpatt2.test(pwdv)){
booldata2 = true;
}
if(pwdpatt3.test(pwdv)){
booldata3 = true;
}
if(booldata1||booldata2||booldata3){
low.style.backgroundColor="#CB4042";
pwicon.style.backgroundImage="url('image/tick.png')";
pwicon.innerHTML="";
} //强度低
if((booldata1&&booldata2)||(booldata1&&booldata3)||(booldata3&&booldata2)){
middle.style.backgroundColor="#F7C242";
pwicon.style.backgroundImage="url('image/tick.png')";
pwicon.innerHTML=""; //强度中
}
if(booldata1&&booldata2&&booldata3){
strong.style.backgroundColor="#227D51";
pwicon.style.backgroundImage="url('image/tick.png')";
pwicon.innerHTML=""; //强度强
}
}
//检测QQ号码
var qq =document.getElementById("qq");
EV.addEvent(qq,"blur",checkQQ);
function checkQQ(){
var qqicon =document.getElementById("qqicon");
var qqtext =document.getElementById("qq").value;
var qqpatt = /^[1-9](\d{5,10})$/;
if(qqpatt.test(qqtext)){
qqicon.style.backgroundImage="url('image/tick.png')";
qqicon.innerHTML="";
}
else{
qqicon.style.backgroundImage="url('image/cross.png')";
qqicon.innerHTML="请输入5至11位数的QQ号码";
qqicon.style.color="#dd0000";
}
}
//检测手机号
var phone = document.getElementById("phone");
EV.addEvent(phone,"blur",checkPhone);
function checkPhone(){
var phoneicon =document.getElementById("phoneicon");
var phonenum = document.getElementById("phone").value;
var phonepatt = /^0?(13|15|14|18)[0-9]{9}$/;
if(phonepatt.test(phonenum)){
phoneicon.style.backgroundImage="url('image/tick.png')";
phoneicon.innerHTML="";
}
else{
phoneicon.style.backgroundImage="url('image/cross.png')";
phoneicon.innerHTML="请输入正确的手机号!";
phoneicon.style.color="#dd0000";
}
}
//检测用户名
var username = document.getElementById("username");
EV.addEvent(username,"blur",checkUser);
function checkUser(){
var usercon = document.getElementById("username").value;
var usernameicon =document.getElementById("usernameicon");
var unpatt = /[A-Za-z0-9_\-\u4e00-\u9fa5]{6,18}/;
if(unpatt.test(usercon)){
usernameicon.style.backgroundImage="url('image/tick.png')";
usernameicon.innerHTML="";
}
else{
usernameicon.style.backgroundImage="url('image/cross.png')";
usernameicon.innerHTML="用户名至少大于6个字符!";
usernameicon.style.color="#dd0000";
if(usercon==""){
usernameicon.style.backgroundImage="url('image/cross.png')";
usernameicon.innerHTML="用户名不能为空!";
usernameicon.style.color="#dd0000";
}
}
//确认密码
var Cfpw =document.getElementById("cfpw");
EV.addEvent(Cfpw,"blur",cfPw);
function cfPw(){
var cfpw =document.getElementById("cfpw").value;
var cfpwicon=document.getElementById("cfpwicon");
var pwd =document.getElementById("password").value;
if(cfpw==pwd&&cfpw!=""){
cfpwicon.style.backgroundImage="url('image/tick.png')";
cfpwicon.innerHTML="";
}else{
cfpwicon.style.backgroundImage="url('image/cross.png')";
cfpwicon.innerHTML="输入的密码不一致!";
cfpwicon.style.color="#dd0000";
}
}
//MSN
var Msn = document.getElementById("msn");
EV.addEvent(Msn,"blur",checkMsn);
function checkMsn(){
var msn =document.getElementById("msn").value;
var msnicon =document.getElementById("msnicon");
var msnpatt = /\w+@[a-zA-Z0-9]+\.[a-zA-Z0-9]{2,14}/;
if(msnpatt.test(msn)){
msnicon.style.backgroundImage="url('image/tick.png')";
msnicon.innerHTML="";
}else{
msnicon.style.backgroundImage="url('image/cross.png')";
msnicon.innerHTML="msn应为正确邮箱地址!";
msnicon.style.color="#dd0000";
}
}
//办公电话
var officephone =document.getElementById("offphone");
EV.addEvent(officephone,"blur",checkoffPhone);
function checkoffPhone(){
var offphone = document.getElementById("offphone").value;
var offphoneicon =document.getElementById("offphoneicon");
var offpatt = /(\(\d{3,4}\)|\d{3,4}-)?\d{8}/;
if(offpatt.test(offphone)){
offphoneicon.style.backgroundImage="url('image/tick.png')";
offphonecon.innerHTML="";
}else{
offphoneicon.style.backgroundImage="url('image/cross.png')";
offphoneicon.innerHTML="例:010-88888888";
offphoneicon.style.color="#dd0000";
}
}
//家庭电话
var Homephone =document.getElementById("homephone");
EV.addEvent(Homephone,"blur",checkHomephone);
function checkHomephone(){
var homephone =document.getElementById("homephone").value;
var homephoneicon =document.getElementById("homephoneicon");
var homepatt = /(\(\d{3,4}\)|\d{3,4}-)?\d{8}/;
if(homepatt.test(homephone)){
homephoneicon.style.backgroundImage="url('image/tick.png')";
homephonecon.innerHTML="";
}else{
homephoneicon.style.backgroundImage="url('image/cross.png')";
homephoneicon.innerHTML="例:010-88888888";
homephoneicon.style.color="#dd0000";
}
}
//问题答案
function checkAnswer(){
var answer =document.getElementById("answer").value;
var answericon =document.getElementById("answericon");
if(answer!=""){
answericon.style.backgroundImage="url('image/tick.png')";
answercon.innerHTML="";
}else{
answericon.style.backgroundImage="url('image/cross.png')";
answericon.innerHTML="密码问题答案不能为空!";
answericon.style.color="#dd0000";
}
}
//登录注册
var login =document.getElementById("login");
EV.addEvent(login,"click",Login);
function Login(){
var form =document.getElementById("form");
if(username.value==""){
alert("用户名不能为空!");
this.value.focus();
return false;
}
if(password.value==""){
alert("密码不能为空!");
this.value.focus();
return false;
}
if(email.value==""){
alert("email不能为空!");
this.value.focus();
return false;
}
else{
var info =confirm("信息填写完整,确定注册吗?");
if(info==true){
window.open("http://www.eduasksz.com","_blank");
}
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 表单
# 正则
# JS 正则表达式中小括号的应用
# JS应用正则表达式转换大小写示例
# JavaScript 正则表达式之RegExp属性、方法及应用分析
# JavaScript中正则表达式的概念与应用
# js replace正则表达式应用案例讲解
# JScript中正则表达函数的说明与应用
# JavaScript正则表达式校验与递归函数实际应用实例解析
# javascript中正则表达式反向引用示例介绍
# JavaScript正则表达式之后向引用实例代码
# 详解JavaScript正则表达式之分组匹配及反向引用
# AS3 js正则表达式 反向引用(backreference)
# JavaScript 正则应用详解【模式、欲查、反向引用等】
# 请输入
# 为空
# 绑定
# 邮箱地址
# 的是
# 较高
# 正则表达式
# 请选择
# 我已
# 新用户注册
# 大家多多
# 装好
# 仅供参考
# 情况下
# 特殊字符
# open
# selected
# question
# option
相关文章:
实例解析Array和String方法
为什么Go需要go mod文件_Go go mod文件作用说明
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
C#如何序列化对象为XML XmlSerializer用法
建站之星客服服务时间及联系方式如何?
利用JavaScript实现拖拽改变元素大小
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
如何快速搭建高效WAP手机网站?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何选择适合PHP云建站的开源框架?
建站之星代理平台如何选择最佳方案?
建站主机功能解析:服务器选择与快速搭建指南
如何在IIS中新建站点并配置端口与物理路径?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
如何注册花生壳免费域名并搭建个人网站?
广平建站公司哪家专业可靠?如何选择?
宝塔Windows建站如何避免显示默认IIS页面?
建站之星如何优化SEO以实现高效排名?
网站专业制作公司有哪些,做一个公司网站要多少钱?
建站主机SSH密钥生成步骤及常见问题解答?
建站之星展会模板:智能建站与自助搭建高效解决方案
如何通过虚拟主机快速搭建个人网站?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何快速生成凡客建站的专业级图册?
seo网站制作优化,网站SEO优化步骤有哪些?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何在Windows虚拟主机上快速搭建网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
建站之星代理费用多少?最新价格详情介绍
如何通过二级域名建站提升品牌影响力?
html制作网站的步骤有哪些,iapp如何添加网页?
如何快速搭建高效WAP手机网站吸引移动用户?
javascript中对象的定义、使用以及对象和原型链操作小结
建站主机助手选型指南:2025年热门推荐与高效部署技巧
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何将凡科建站内容保存为本地文件?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
定制建站方案优化指南:企业官网开发与建站费用解析
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何在橙子建站中快速调整背景颜色?
想学网站制作怎么学,建立一个网站要花费多少?
如何选择可靠的免备案建站服务器?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
建站之星安装需要哪些步骤及注意事项?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何通过云梦建站系统实现SEO快速优化?
如何在宝塔面板中创建新站点?
*请认真填写需求信息,我们会在24小时内与您取得联系。