Javascript--表单验证

今天学习了JavaScript实现本地表单验证,也借这个例子开始学习了一下JavaScript,代码及笔记如下:  1 <script>
  2 /**
  3  * 1.抓取元素
  4  * 2.指定规则:正则表达式--原理:通配符匹配技术
  5  */
  6  //当页面加载时调用脚本:window.onload
  7 window.onload=function(){
  8     /*抓取所有input标签*/
  9     var aInput=document.getElementsByTagName(‘input‘);
 10     var oName=aInput[0];
 11     var pwd=aInput[1];
 12     var pwd2=aInput[2];
 13     //抓取P标签
 14     var aP=document.getElementsByTagName(‘p‘);
 15     var name_msg=aP[0];
 16     var pwd_msg=aP[1];
 17     var pwd2_msg=aP[2];
 18     //使用ID直接抓取b元素:<b id="count">0个字符</b>
 19     var count=document.getElementById("count");
 20     //抓取所有em标签
 21     var aEM=document.getElementByTagName("em");
 22     //定义全局变量--字符长度
 23     var name_length=0;
 24     var re_n=/[^\d]/g ;//正则--非数字
 25     var re_v=/[^a-zA-Z]/g ;//正则--非字母
 26         /*
 27     *表单用户名要求:
 28     *1.数字、字母(不区分大小写)、汉字、下划线
 29     *2.5—25个字符,推荐使用中文会员名
 30     *定义用户名交互设计方法:输入聚焦状态、非聚焦模糊状态、输入完毕状态
 31     */
 32     //输入foucus状态
 33     oName.onfoucus=function()
 34     {
 35         //输入状态下,右侧提示以块状显示
 36         name_msg.style.display="block";
 37         //使用innerHTML写入HTML代码
 38         name_msg.innerHTML=‘<i class"ati"></i>5-25个字符,一个汉字为两个字符,推荐使用中文会员名。‘;
 39     }
 40
 41         //输入完毕状态:onkeyup
 42     oName.onkeyup=function()
 43     {
 44         //改变count.显示提示输入了多少字符
 45         count.style.visibility="visible";
 46         //调用getLength计算输入长度
 47         name_length=getLength(this.value);
 48         //当字符长度为0为时候,将count隐藏
 49         if(name_length==0)
 50         {
 51             count.style.visibility="hidden";
 52         }
 53
 54     }
 55
 56         //非聚焦模糊状态:blur(鼠标没在输入框内了),进行判断
 57     oName.onblur=function()
 58     {
 59         //定义非法字符:只能为数字,字母,汉字,其他都为非法字符串
 60         var re=/[\w\ue400-\u9fa5] /g  ;
 61         //含有非法字符
 62         if(re.test(this.value))
 63         {
 64             name_msg.innerHTML=‘<i class="err"></i>含有非法字符串‘;
 65         }
 66         //不能为空
 67         else if(re.test(this.value==""))
 68         {
 69             name_msg.innerHTML=‘<i class="err"></i>不能为空‘;
 70         }
 71         //长度超过25个字符
 72         else if(name_length>25)
 73         {
 74             name_msg.innerHTML=‘<i class="err"></i>长度超过25个字符‘;
 75         }
 76         //长度少于6个字符
 77         else if(name_length<6)
 78         {
 79             name_msg.innerHTML=‘<i class="err"></i>长度少于6个字符‘;
 80         }
 81         //OK
 82         else(re.test(this.value))
 83         {
 84             name_msg.innerHTML=‘<i class="ok"></i>OK!‘;
 85         }
 86     }
 87
 88     //计算输入的字符长度
 89     function getLength(str)
 90     {
 91         //使用字符串中的replace()方法将非单字符替换为xx字符串,使用lengh统计长度
 92         return str.replace(/[^\x00-\xff]/g ,"xx").length;
 93     }
 94
 95     /*
 96     *表单验证密码pwd验证要求:
 97     *1.使用数字加字母或符号的组合密码
 98     *2.不能单独使用字母、数组或符号
 99     *3.6-16个字符
100     *方法:onkeyup();onblur();onfocus()
101     */
102     pwd.onfocus = function()
103     {
104         pwd_msg.style.display="block";
105         pwd_msg.innerHTML=‘<i class="ati"></i>6-16个字符,请是用字母加数字或符号的组合密码,不能单独使用字母、数字或符号。‘;
106     }
107
108     pwd.onkeyup = function()
109     {
110         //定义字符强度:大于5个字符为中,大于10个为强
111             //字符强度为中
112         if(this.value.length>5)
113         {
114             aEm[1].className="active";//当密码强度为中时,中字变色,使用active样式
115             pwd2.removeAttribute("disable");//将pwd2处禁用的disable属性去掉
116             pwd2_msg.style.display="block";//pwd2右侧的提示语出现
117         }
118         else                    //当字符长度<5的时候变回弱,且确认密码不可用
119         {
120             aEm[1].className="";//不是用active样式
121             pwd2.setAttribute("disable");//禁用pwd2输入
122             pwd2_msg.style.display="none";
123         }
124             //字符强度为强
125         if(this.value.length>=10)
126         {
127             aEm[2].className="active";//只需要将强字的颜色改变就可以了,因为当字符长度大于5的时候:pwd2已经可以使用,中字已经可以变色了
128         }
129         else
130         {
131             aEm[2].className="";
132         }
133
134     }
135
136     pwd.onblur = function()
137     {
138         //定义变量接收调用了fundStr()返回来的值
139         var m=findStr(pwd.value,pwd.value[0]);
140         //不能为空
141         if(this.value=="")
142         {
143             pwd_msg.innerHTML=‘<i class="err"></i>密码不能为空‘;
144         }
145         //不能用连续相同字符作为密码--需要另外自定义一个函数findStr()
146         else if(m==this.value.length)
147         {
148             pwd_msg.innerHTML=‘<i class="err"></i>密码不能为连续相同的字符‘;
149         }
150         //长度为6-16个字符
151         else if(this.value.length<6 || this.value.length>16)
152         {
153             pwd_msg.innerHTML=‘<i class="err“></i>密码的长度应为6-16个字符‘;
154         }
155         //不能全为数字
156         else if(!re_n.test(this.value))
157         {
158             pwd_msg.innerHTML=‘<i class="err"></i>不能全为数字‘;
159             }
160         //不能全为字母
161         else if(!re_v.test(this.value))
162         {
163             pwd_msg.innerHTML=‘<i class="err"></i>不能全为字母‘;
164         }
165         //OK
166         else
167         {
168             pwd_msg.innerHTML=‘<i class="ok"></i>OK!‘;
169         }
170     }
171
172     /*相同字符判断函数,有两个参数:输入的字符串str,要对比的字符n
173      *自定义一个临时变量,初始化为0
174      *然后对字符n赋不同的值,每次赋值完毕后就
175      *遍历str字符串且每一个字符与n字符[输入的字符串的第一个字符]比较
176      *若两字符相同则tmp+1,如果同直接跳出结束循环
177      *最后返回tmp的值和str的长度比较
178      *如果相等则判断密码为连续相同的字符
179      */
180     function findStr(str,n){
181         var tmp=0;
182         var sum=str.length;
183         //循环遍历字符串
184         for(var i=0; i<sum; i++){
185             if(str.charAt(i)==n)
186                 tmp++;
187             else
188                 break;
189         }
190         return tmp;
191     }
192
193     /*
194     *表单确认密码p2wd验证要求:
195     *4.与pwd1相等
196     *方法:onkey();onblur();onfocus()
197     */
198     pwd2.onblur() = function()
199     {
200         if(this.value!=pwd.value)
201         {
202             pwd2_msg.innerHTML=‘<i class="err"></i>两次输入验证不一致,请重新输入‘;
203             this.value="";
204         }else{
205             pwd2_msg.innerHTML=‘<i class="ok"></i>OK!‘;
206         }
207     }
208
209
210 }
211 </script>
时间: 2024-10-05 10:14:34

Javascript--表单验证的相关文章

JavaScript表单验证和正则表达式

JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html

JavaScript表单验证是否为中文

JavaScript表单验证是否为中文,判断一个输入量是否为中文,通过正则表达式实现. // 检查是否为中文 function isChn(str){ var reg = /^[u4E00-u9FA5]+$/; if(!reg.test(str)){m.mlyrx120.com return false; } return true; }

JavaScript表单验证中文大写字母

JavaScript表单验证中文大写字母,判断一个输入量是否为中文或大写的英文字母,通过正则表达式实现. // 检查是否为有效的真实姓名,只能含有中文或大写的英文字母 function isValidTrueName(strName){ var str = Trim(strName); //判断是否为全英文大写或全中文,可以包含空格 var reg = /^[A-Z u4E00-u9FA5]+$/;http://rl.82676666.com if(reg.test(str)){ return

10个强大的Javascript表单验证插件推荐

创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScript表单验证插件,使用它们完全可以节省你的时间!希望你喜欢. 1. validate.js Validate.js是一个非常不错的JavaScript表单验证库,源于CodeIgniter API.该库相当轻巧(不到1KB),不要求任何JavaScript框架,可以在所有主流浏览器中运行(包括IE

JavaScript表单验证年龄

JavaScript表单验证年龄,判断一个输入量是否符合年龄,通过正则表达式实现. //检查年龄 function isAge(str){ var mydate=new Date; var now=mydate.getFullYear(); if (str < now-60 || str > now-18){ return false; } return true; } 去看看你都知道那些?>>颜色代码表大全

JavaScript 表单验证正则表达式大全

JavaScript验证正则表达式大全,搜集最全的JavaScript验证正则表达式,开始查看吧,这里的都是正则表达式的例子 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?

JavaScript - 表单验证实例

表单验证1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Javascript表单验证知识

Javascript表单编程: 一.表单元素的查找方式: 1.var oForm=document.getElementById("Form1"); 2.var oForm=document.forms[Form1]//通过name查找: 二.表单字段的共同特点: disabled:该属性用于指示一个表单控件是否可用: form属性:该属性返回包含字段的表单: blur():该方法导致表单字段失去焦点: focus():该方法导致表单字段获得焦点: blur事件:当表单字段失去焦点时,

JavaScript表单验证,输入中文时字符长度为2

获取输入框中的字符长度进行表单验证,当输入英文时字符长度就是1,当输入中文时字符长度为2. 字符数为4~16位, 上图: 一个中文抵两英文. 上代码 1 btn.addEventListener('click',ov,false); 2 3 function ov(){ 4 var inputValue = text.value.trim(); 5 //去掉最前最后的空格 6 if (countLength(inputValue) < 4 || countLength(inputValue) >

javascript表单验证

表单HTML <form action="" method="post"> <fieldset class="login"> <legend>Login information</legend> <label for="userName" class="hover">UserName:</label> <input type=&q