使用JAVASCRIPT进行数据完整性验证
页面输入完整性是编写BS经常遇到的问题,如果那里需要就到那里写,那可是要花不少的时候,并且造成不必要的浪费,下面是一个通过校验脚本,使用非常方便,通过传入FORM名就可以进行校验,通过在页面控件中增加用户本身自定义属性,进行方便的验证,包括数字的输入、密码的输入、EMAIL的输入,用户本身可以进行无限的扩展,使用如下,在页面中加入如下代码:
- <form name="form1">
- <input type="text" name="t1" req="0" size="20"><br>
- <input type="text" name="t2" req="0" size="20"><br>
- <input type="text" name="t3" req="0" size="20"><br>
- <input type="text" name="t4" req="1" size="20"><br>
- <input type="text" name="t5" req="1" customtype="email" displayname="电子邮件" size="20"><br>
- <input type="button" name="bt" value="check" onclick="checkForm(document.form1)">
- </form>
并在页头加以包含以下代码的JS脚本:
- var customtypes = new Array("num","plus","int","email","link","password","name","date","money","date8");
- var custommessage = new Array(
- "不是一个有效的数字。",
- "不是一个有效的正整数。",
- "不是一个有效的整数。",
- "不是一个有效的电子邮件地址。",
- "不是一个有效的链接,请确认输入了完整的地址,例如http://www.cnlist.com。",
- "不是一个有效的密码,密码只能使用字母、下划线与数字,不能包含符号与空格。",
- "不是一个有效的名称,名称只能使用字母、下划线与数字,不能包含符号与空格。",
- "不是一个有效的日期。",
- "不是一个有效的money格式。",
- "不是一个有效的8位日期,如:20050801。"
- );
- function checkForm(oForm){
- window.event.returnValue = false;
- for (var i=0;i<oForm.all.tags("input").length;i++){
- var ele = oForm.all.tags("input")[i];
- var ct = ele.getAttribute("customtype");
- var req = ele.getAttribute("req");
- var dn = ele.getAttribute("displayname");
- if (null == dn){
- dn = ele.name;
- }
- dn = "“" + dn + "”";
- if(ele.value!=null){
- ele.value = ele.value.replace(/%/g, "%");
- }
- var nr = new String(ele.value);
- if ("1" == req){
- if (nr.length < 1){
- alert(dn + "不可以省略,请重新输入。");
- //ele.focus();
- focusIt(ele);
- return false;
- }
- }
- if((''==req || '0' ==req || null==req) && (ele.value == "")) continue;//不必要且没有输入时,下一个
- if ((("" == req)||(null == ct)) &&(ele.value == "")) continue;
- //检查自定义类型
- //纠正自定义类型在req不等于1时仍要求输入的bug
- if (("1" == req) || (nr.length > 0)) {
- for (var j=0;j<customtypes.length;j++){
- if (ct == customtypes[j]){
- if(ct=="money"){
- eval("var rtn = check_" + customtypes[j] + "(ele);");
- }else{
- eval("var rtn = check_" + customtypes[j] + "(ele.value);");
- }
- if (!rtn){
- alert(dn + custommessage[j]);
- //ele.focus();
- focusIt(ele);
- return false;
- }
- }
- }
- }
- }
- window.event.returnValue = true;
- return true;
- }
- function check_money(s) {
- s.value=s.value.replace(/,/g, "")
- var re = /^(/+|-)?/d+(./d+)?$/i;
- return re.test(s.value);
- }
- function check_email(s){
- var re = /^/w+@(/w)+((.(/w)+)+)?$/i;
- return re.test(s);
- }
- function check_num(s){
- var re = /^(/+|-)?/d+(./d+)?$/i;
- return re.test(s);
- }
- function check_int(s){
- var re = /^(/+|-)?/d+$/i;
- return re.test(s);
- }
- function check_plus(s) {
- var re = /^[1-9]/d*$/i
- return re.test(s);
- }
- function check_link(s){
- var re = /^(http|mailto|ftp|https|telnet)://{2}/i;
- return re.test(s);
- }
- function check_password(s){
- var re = /^/w+$/i;
- return re.test(s);
- }
- function check_name(s){
- return check_password(s);
- }
- function check_date8(DateString){
- return isDateEight(DateString);
- }
- //日期检测
- function check_date(DateString){
- if (DateString==null) return false;
- if (Dilimeter=='' || Dilimeter==null)
- var Dilimeter = '-';
- if (Dilimeter.indexOf("/")>0)
- {
- Dilimeter="/";
- }
- var tempy='';
- var tempm='';
- var tempd='';
- var tempH="";
- var tempM="";
- var tempS="";
- var tempymd="";
- var temphms="";
- var tempArray;
- if (DateString.length<8 && DateString.length>19) {
- return false;
- }
- if (DateString.indexOf(" ")>0)
- {
- temp=DateString.split(" ");
- tempymd=temp[0];
- temphms=temp[1];
- }
- else
- {
- tempymd=DateString;
- temphms="00:00:00";
- }
- tempArray = tempymd.split(Dilimeter);
- if (tempArray.length!=3) {
- return false;
- }
- if (tempArray[0].length==4)
- {
- tempy = tempArray[0];
- tempd = tempArray[2];
- tempm = tempArray[1];
- }
- else
- {
- tempy = tempArray[2];
- tempd = tempArray[1];
- tempm = tempArray[0];
- }
- tempArray = temphms.split(":");
- if (tempArray.length>3 || tempArray.length<2) {
- return false;
- }
- switch (tempArray.length) {
- case 2:
- tempH=tempArray[0];
- tempM=tempArray[1];
- tempS="00";
- break;
- case 3:
- tempH=tempArray[0];
- tempM=tempArray[1];
- tempS=tempArray[2];
- break;
- }
- var tDateString = tempy + '/'+tempm + '/'+tempd+' '+tempH+":"+tempM+":"+tempS;
- var tempDate = new Date(tDateString);
- if (isNaN(tempDate)) {
- return false;
- }
- if ((tempDate.getYear().toString()==tempy || tempDate.getYear()==parseInt(tempy,10)-1900)
- && (tempDate.getMonth()==parseInt(tempm,10)-1)
- && (tempDate.getDate()==parseInt(tempd,10))
- && (tempDate.getHours().toString()==parseInt(tempH,10))
- && (tempDate.getMinutes().toString()==parseInt(tempM,10))
- && (tempDate.getSeconds().toString()==parseInt(tempS,10)))
- {
- return true;
- }
- else
- {
- alert('tDateString='+tDateString);
- return false;
- }
- }
- //激活输入组件的焦点
- function focusIt(obj){
- try{
- var ele = mtb;
- }catch(e){
- try{
- obj.focus();
- return;
- }catch(e){
- return;
- }
- }
- for (var i=0;i<ele.length;i++){
- swH(i);
- try{
- obj.focus();
- }catch(e){
- continue;
- }
- break;
- }
- try{
- obj.focus();
- }catch(e){
- return false;
- }return true;
- }
使用JAVASCRIPT进行数据完整性验证的更多相关文章
- Javascript之登陆验证
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配网址URL的正则表达式:http ...
- JavaScript表单验证年龄
JavaScript表单验证年龄,判断一个输入量是否符合年龄,通过正则表达式实现. //检查年龄 function isAge(str){ var mydate=new Date; var now=m ...
- 前端工具 - 15个最佳的 JavaScript 表单验证库
客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...
- JavaScript表单验证和正则表达式
JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: <! ...
- 15个最佳的 JavaScript 表单验证库
客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...
- JavaScript 表单验证入门
JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单 ...
- JavaScript 表单验证 案例
JavaScript 表单验证 案例 版权声明:未经授权,严禁转载! 编写 HTML 文件,搭建主体界面 <html> <head> <meta charset=&q ...
- 10个强大的Javascript表单验证插件推荐
创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...
- JavaScript 表单验证正则表达式大全
JavaScript 表单验证正则表达式大全[转载] 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...
随机推荐
- 【PAT】1028. List Sorting (25)
题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1028 题目描述: Excel can sort records according to an ...
- UIScrollView 循环滚动,代码超简单
如今非常多应用里面多多少少都用到了循环滚动,要么是图片.要么是view,或者是其它,我总结一下,写了个demo分享给大家. 先看代码之后在讲原理: 1.创建一个空的项目(这个我就不多说了). 2.加入 ...
- 〖Android〗(how-to) fix k860/k860i buletooth.
bluedroid.so for k860/k860i 1./media/Enjoy/AndroidCode/cm10.1/device/lenovo/stuttgart/bluetooth/blue ...
- Tomcat 改服务器编码(Java 修改字符串编码格式)
对于客户端发来的汉字,我们一般需要转码: ------------------------------------------------------------------------------- ...
- 深层神经网络框架的python实现
概述 本文demo非常适合入门AI与深度学习的同学,从最基础的知识讲起,只要有一点点的高等数学.统计学.矩阵的相关知识,相信大家完全可以看明白.程序的编写不借助任何第三方的深度学习库,从最底层写起. ...
- sql 百分比
select [city], bfb=cast(cast(count(*)*100./(select count(*) from [UserBasicInfo]) as decimal(10,0)) ...
- 为MFC中的ListBox添加水平滚动条
我们知道,MFC中的水平滚动条并不像垂直滚动条那样的智能.当文字超出ListBox的宽度时,水平滚动条并不会自己出现,我们需要手动的调用CListBox中的函数SetHorizontalExtent设 ...
- HDU 4946 Area of Mushroom 共线凸包
题意是在二维平面上 给定n个人 每一个人的坐标和移动速度v 若对于某个点,仅仅有 x 能最先到达(即没有人能比x先到这个点或者同一时候到这个点) 则这个点称作被x占有 若有人能占有无穷大的面积 则输出 ...
- 使用Open Live Writer写博客
1. 下载安装软件 安装包路径http://openlivewriter.org/ 2.配置 打开软件后会提示你配置博客账号地址 3.安装代码高亮插件 下载插件源代码https://pan.baidu ...
- Python 爬虫 去掉网页注释,去掉网页注释
在爬虫中,我们遇到了网页注释的问题,这些内容,第一,耗费内存资源,第二,在解析网页的时候,不易匹配出来信息.那么我们该如何去掉他们呢??? 我们可以去使用正则去过滤掉他们 方法如下 result = ...