页面验证

例子:仅供测试


注册帐号

密码

重新输入密码

身份证号码

银行存款

拥有几家世界500强企业

出生日期

下辈子出生日期

对输入内容进行验证
//这是把JS文件全放在了html里面  可以把里面的JS内容分出2个JS来   另外 身份证的验证  在另一文章里面
//http://www.cnblogs.com/jiandanfy/archive/2008/02/01/1061248.html
<html>
<head>
<title>简单星空 页面验证的例子</title>


</head>
<script>
    function onBtnSave() {
        form = document.forms[0];
        if(validateForm(form)) {
        alert("验证通过!");
        return;
        //    var url = "<c:url value='/emclass/saveAdd.do' />";
        //form.action = url;
        //    form.submit();
        }
        
    }
    
    
    
/以下是 validate.js
    
    function validateForm(form) {

    return   validateRequired(form);
}

function required () {

    //添加或者一个新的验证类型  要在下面添加 一个新的验证类型  然后去validates.js里指定的位置增加相应的验证代码  
    //数组第一位是验证类型 第二位是表单元素的name 第三位是验证不通过时弹出来的警告信息 最后一个 扩展

    //最小长度
    this.r1 = new Array("minlength","passwd", "密码不能为空", new Function ("varName","this.minlength=1;return this[varName];"));
    this.r2 = new Array("minlength","boke", "博客园帐号不能为空  ", new Function ("varName","this.minlength=1;return this[varName];"));
    this.r3 = new Array("minlength","pking","身份证号码不能为空", new Function ("varName","this.minlength=1;return this[varName];"));
    this.r4 = new Array("minlength","bank","银行存款不能为空", new Function ("varName","this.minlength=1;return this[varName];"));

    //最大长度
    this.r5 = new Array("maxlength","passwd", "密码不能超过10位 ", new Function ("varName","this.maxlength=10;return this[varName];"));
    //负数
    this.r6 = new Array("negative","bank", "银行存款就不要填负数了 不能为负数");
    //整数
    this.r7 = new Array("int","company", "请务必正确填写你所拥有的世界500强企业的数目  此数目允许为负 ");
    //实数
    this.r8 = new Array("float","bank", "银行存款小数点后可以填2位 注意: 不允许超过一万  !", new Function ("varName","this.max=5;this.min=2;return this[varName];"));
    //身份证号码
    this.r9 = new Array("pking","pking", "请填写正确的身份证号码!");
    //两次密码确认
    this.r10 = new Array("passwd","passwd", "2次输入的密码不一样","passwds");
    //日期先后顺序   数组的第二位是第一次时间  第4位是第二次时间
    this.r11 = new Array("dateOrder","birthday", "日期顺序不对","birthdays");
    //日期格式验证  
    this.r12 = new Array("date","birthday", "日期格式填写错误", new Function ("varName","this.datePattern='yyyy-MM-dd';return this[varName];"));
    this.r13 = new Array("date","birthdays", "日期格式填写错误", new Function ("varName","this.datePattern='yyyy-MM-dd';return this[varName];"));
    //帐号格式  
    this.r14 = new Array("chn","boke", "帐号必须是中文");
    this.r15 = new Array("id","boke", "注册帐号格式应该是:字母开头,允许5-16字节,允许字母数字下划线");
    this.r16 = new Array("email","boke", "email格式填写错误");

}


    
// 以下是   validates.js    
    
    
  //去掉左右空格
function trim(s) {
 return s.replace( /^"s*/, "" ).replace( /"s*$/, "" );
}
//字串长度
function strLen(value){
     var str,Num = 0;
    
     for (var i=0;i<value.length;i++){
      str = value.substring(i,i+1);
      if (str<="~")  
        Num+=1;
      else
        Num+=2;
     }
    
     return Num;
 }
 //判断argvalue 字串中的每一个字符 是否在规定范围之内
function isAllDigits(argvalue) {
        argvalue = argvalue.toString();
        var validChars = "0123456789";
        var startFrom = 0;
        if (argvalue.substring(0, 2) == "0x") {
           validChars = "0123456789abcdefABCDEF";
           startFrom = 2;
        } else if (argvalue.charAt(0) == "0") {
           validChars = "01234567";
           startFrom = 1;
        } else if (argvalue.charAt(0) == "-") {
            startFrom = 1;
        }
        for (var n = startFrom; n < argvalue.length; n++) {
            if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
        }
        return true;
    }
    
//    通用取值函数        分三类进行取值 [文本输入框,单多选,多下拉菜单]
function getValue(field){
        var fType = field.type;
                    switch(fType) {
            case "text":
            case "hidden":
            case "password":
            case "file":
            case "textarea": return field.value;
            case "checkbox":
            case "radio": return GetValueChoose(field);
            case "select-one":
            case "select-multiple": return GetValueSel(field);
                                }
 //取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
        function GetValueChoose(field) {
            var sValue = "";
 //取得第一个元素的name,搜索这个元素组
            var tmpels = document.getElementsByName(field.name);
            for(var i=0;i<tmpels.length;i++)  {
                if(tmpels[i].checked)   {
                    sValue += "0";
                                            }
                            }
            return sValue;
                }
        function GetValueSel(field){
            var sValue = "";
            for(var i=0;i<field.options.length;i++) {
//单选下拉框提示选项设置为value=""
              if(field.options[i].selected && field.options[i].value!=""){
                    sValue += "0";
                                        }
                            }
            return sValue;
                    }
    }


//                            验证函数                                                
function validateRequired(form) {

          var isValid = true;
          var focusField = null;
          var i = 0;
          var fields = new Array();
          oRequired = new required();          
          for (x in oRequired) {
                          var valiType = oRequired[x][0];
                        var field = form[oRequired[x][1]];
                            if(typeof field =="#ff0000")    continue;
                             var value = getValue(field);    
                                 var a="";

                    switch(valiType) {
            case "minlength":    var minlength = parseInt(oRequired[x][3]("minlength")); a=vMinlength(value,minlength);break;    
            case "maxlength": var maxlength = parseInt(oRequired[x][3]("maxlength")); a=vMaxlength(value,maxlength);break;
                       case "negative":  a=vNegative(value);break;
                       case "int":  a=vInt(value);break;    
                       case "float":a=vFloat(value);break;
                     case "idcard":a=vIdcard(value);break;
                       case "passwd": value2 = getValue(form[oRequired[x][3]]); a=vPasswd(value,value2);break;
                       case "dateOrder":  value2 = getValue(form[oRequired[x][3]]); a=vDateOrder(value,value2);break;
                       case "date":   a=vDate(value);break;
                       case "id":   a=vId(value);break;
                       case "email":   a=vEmail(value);break;
                       case "chn":   a=vChn(value);break;
                               
                                }
                            //如果验证不通过
                            if (a) {
                                 if (i == 0)  focusField = field;
                                 fields[i++] = oRequired[x][2];
                                 isValid = false;
                             }
              }
         if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('"n'));
          }
  return isValid;
}

//                        最小长度  (不能为空)
function vMinlength(value,minlength){
if(trim(value).length < minlength)return true;
}
//                        最大长度  
function vMaxlength(value,maxlength){
if(trim(value).length > maxlength)return true;
}
//                        不能有负号
function vNegative(value){
if(trim(value).indexOf("-")!=-1)return true;
}
//                        整数
function vInt(value) {
                if (value.length > 0) {
                    if (!isAllDigits(value))
                      return true;
                    else {
                     var iValue = parseInt(value);
                     if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647))
                          return true;
                                                     }
                                       }
}

//                    浮点数
function vFloat(value) {
                if (value.length > 0) {
                    // remove '.' before checking digits
                    var tempArray = value.split('.');
                    //Strip off leading '0'
                    var zeroIndex = 0;
                    var joinedString= tempArray.join('');
                    while (joinedString.charAt(zeroIndex) == '0') {
                        zeroIndex++;
                                                         }
                    var noZeroString = joinedString.substring(zeroIndex,joinedString.length);

                    if (!isAllDigits(noZeroString))
                                                            return true;
                    else {
                                    var iValue = parseFloat(value);
                                if (isNaN(iValue))
                                   return true;
                                 var fMin = parseFloat(oRequired[x][3]("min"));
                                 var fMax = parseFloat(oRequired[x][3]("max"));
                                 var intValue = '';
                                 var fragValue = '';
                                 var index = value.indexOf(".");
                                 if(index==-1){
                                    intValue = value;
                                 }else{
                                    intValue = value.substring(0,index);
                                    fragValue = value.substring(index+1);
                                                                     }
                                          if(  vInt(intValue) || vInt(fragValue) )
                                           return true;
                                  if (!(intValue.length <= fMax && fragValue.length <= fMin))
                                    return true;
                                                      }
                                        }
    }
    
 //                        密码确认    
function vPasswd(value,value2){
if(value!=value2)return true;
}
//                        时间顺序

function vDateOrder(date1,date2){
                var _date1 = date1.split("-");
                var d1=new Date(_date1[0],_date1[1],_date1[2]);
                
                var _date2 = date2.split("-");
                var d2=new Date(_date2[0],_date2[1],_date2[2]);
                if( d1.getTime()>=d2.getTime() )
             return true;

    }

//                    日期验证                                                                                                                
function vDate(value) {
if(trim(value).length!=0){

var date = value.split("-");
var yyyy = date[0], mm = date[1], dd = date[2];
var d=new Date(yyyy,mm,dd),year=d.getFullYear(),mon=d.getMonth(),day=d.getDate();
if ( year!=yyyy || mon!=mm || day!=dd ||!isValidDate(dd, mm, yyyy) )
    return true;
}
}
//日期 初步验证
function isValidDate(day, month, year) {
        if (month < 1 || month > 12) {
            return false;
        }
        if (day < 1 || day > 31) {
            return false;
        }
        if ((month == 4 || month == 6 || month == 9 || month == 11) &&
            (day == 31)) {
            return false;
        }
        if (month == 2) {
            var leap = (year % 4 == 0 &&
               (year % 100 != 0 || year % 400 == 0));
            if (day>29 || (day == 29 && !leap)) {
                return false;
            }
        }
        return true;
}
//注册帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
function vId(value){
if( !(/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/.test(value)))
return true;
}
    
//验证必需是中文
function vChn(value){
if( (/^[u4E00-u9FA5]+$/.test(value)))
       return true;
 }
//检查email邮箱
function vEmail(value){
  var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((".[a-zA-Z0-9_-]{2,3}){1,2})$/;
 if( !reg.test(value))return true;
}
    
    
</script>
<body background="119.jpg">
<form><br><br><br>
    <table align="center">
        
        <tr><td>
        博客园帐号</td><td>
        <input type="text" name="boke"></td></tr><tr><td> <br>
        密码</td><td>
        <input type="passwd" name="passwd"></td></tr><tr><td> <br>
        重新输入密码 </td><td>
        <input type="passwd" name="passwds"></td></tr><tr><td> <br>
        身份证号码 </td><td>
        <input type="text" name="pking"></td></tr><tr><td> <br>
        银行存款 </td><td>
        <input type="text" name="bank"></td></tr><tr><td> <br>
        拥有几家世界500强企业  </td><td>
        <input type="text" name="company"></td></tr><tr><td> <br>
        出生日期  </td><td>
        <input type="text" name="birthday"></td></tr><tr><td> <br>
        下辈子出生日期  </td><td>
        <input type="text" name="birthdays"></td></tr><br>
        
    </table><br>

    
    <table align="center">
    <tr>
        <td>
        <button  style="width:60px" onClick="onBtnSave()">保存</button>
        </td>
    </tr>
</table>

</form>
</body>
</html>

转载于:https://www.cnblogs.com/jiandanfy/archive/2008/01/25/1053170.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python导入文件列行_python读写csv文件并增加行列的实例代码

python读写csv文件并增加行列&#xff0c;具体代码如下所示&#xff1a; # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28:17 2017 author: Shawn Yuen """ import csv d list(range(38685)) with open(./kinetics_test.csv) as f1: …

ie插件获取dom_读书笔记《DOM编程艺术》DOM

DOM的理解1.1 D&#xff1a;当创建了一个网页并把它加载到Web浏览器中时&#xff0c;DOM就生成了&#xff0c;它将我们编写的网页文档转换成一个文档对象。1.2 O&#xff1a;“对象”是一种自足的数据集合&#xff0c;相关联的变量称为这个对象的属性&#xff0c;只能通过这个对…

针对Fluent-Bit采集容器日志的补充

hello&#xff0c;之前我写过《一套标准的ASP.NET Core容器化应用日志收集分析方案》&#xff0c;在公司团队、微信公众号、Github上反映良好。其中配置Fluent-bit使用Forward协议收集容器日志&#xff0c;需要在Docker-Compose App配置Loging DriverFluentd实践中&#xff0c;…

Oracle结构设计技巧(访问数据库象访问内存一样 快)

尽管Oracle系统本身已经提供了若干种对系统性能进行调节的技术&#xff0c;但是&#xff0c;假如数据库设计本身就有问题特别是在结构上设计得尤其糟糕&#xff0c;那你纵有天大的本事又能奈何?因此&#xff0c;Oracle数据库的设计者完全有必要弄清楚(从项目着手设计开始)该如…

js template换行_JavaScript字符串换行符?

小编典典我刚刚使用了一些愚蠢的JavaScript测试了一些浏览器&#xff1a;function log_newline(msg, test_value) {if (!test_value) {test_value document.getElementById(test).value;}console.log(msg : (test_value.match(/\r/) ? CR : ) (test_value.match(/\n/) …

在每个运行中运行多个查询_在Kubernetes中运行OpenEBS

什么是OpenEBS&#xff1f;现在&#xff0c;OpenEBS是kubernetes下与容器原生和容器附加存储类型相关通用的领先开源项目之一。 通过为每个工作负载指定专用的存储控制器&#xff0c;OpenEBS遵循容器附加存储或CAS的脚步。 为了向用户提供更多功能&#xff0c;OpenEBS具有精细的…

如何在 C# 8 中使用默认接口方法

C# 8 中新增了一个非常有趣的特性&#xff0c;叫做 默认接口方法 (又称虚拟扩展方法)&#xff0c;这篇文章将会讨论 C# 8 中的默认接口方法以及如何使用。在 C# 8 之前&#xff0c;接口不能包含方法定义&#xff0c;只能在接口中定义方法签名&#xff0c;还有一个就是接口的成员…

.Net下二进制形式的文件(图片)的存储与读取 [ZT]

.Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时&#xff0c;要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].1.参数是图片路径:返回Byte[]类型: publicbyte[] GetPictureData(stringimagepath) { /**…

c++tcp接收文件缓存多大合适_网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?...

1.自我介绍项目2.RPC框架和普通http有什么区别和优势&#xff1f; 基于Tcp封装还是http封装的3.rpc是长连接吗&#xff1f;如果要传输一个特别大的文件 底层还是基于流吗&#xff1f; Nio是一个什么IO模型&#xff1f;4.github了的watch star fork5.异常和error的区别&#xff…

cmd看excel有多少个子表_Excel中多个工作簿(工作表)如何合并为1个工作簿(工作表)?...

看到Excel多表合并&#xff0c;其实常见的有2种场景场景一&#xff1a;多个Excel文件需要合并为1个Excel文件(多个工作簿合并为1个工作簿)场景二&#xff1a;1个Excel文件种有多个工作表&#xff0c;需要合并为1个工作表首先来看下&#xff0c;场景一(多个Excel文件合并为1个文…

如何在 ASP.Net Core 中使用 LoggerMessage

ASP.NET Core 是一个开源的、跨平台的、轻量级模块化框架&#xff0c;可用于构建高性能、可伸缩的web应用程序&#xff0c;你也许不知道 ASP.NET Core 中有一个藏得很深&#xff0c;而且非常强大的特性&#xff0c;那就是 LoggerMessage&#xff0c;与内建的 Logger 相比&#…

希望不要T我~~哈哈...

不在学校&#xff0c;上网不便&#xff0c;账号未登入时间期限若到~还望别T&#xff0c;呵呵....我喜欢这里~多谢老大&#xff01;&#xff01;&#xff01;&#xff01;技术成就梦想&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;转载于:https://blog.51cto.c…

模拟器显示空白图片_Kawaks街机模拟器,还是小时候的味道!

APP菜园打造属于我们自己的APP帝国1.打开支付宝app&#xff0c;首页搜索 “8221050” 然后点击快捷功能&#xff0c;天天领红包。2.软件领取流程&#xff1a;1.认真阅读下软件介绍&#xff1b;2.找到图片下方的“获取链接”复制&#xff1b;3.打开手机上的浏览器粘贴链接搜索(…

7段均衡器最佳参数_介绍一下十段均衡器的设置和参数

介绍一下十段均衡器的设置和参数【第一章.EQ的基本定义】EQ是Equalizer的缩写&#xff0c;大陆称为均衡器&#xff0c;港台称为等化器。作用是调整各频段信号的增益值。10段均衡器表示有10个可调节节点。节点越多&#xff0c;便可以调节出更精确的曲线&#xff0c;同时难度更大…

ASP.NET Core 查看应用状态和统计

在日常开发中&#xff0c;我们需要关注 .NET 应用的资源使用情况&#xff0c;方便排查问题和扩容。通过 Ajax 请求获取统计信息&#xff0c;展示成图表&#xff0c;如下图&#xff1a;CLRStats 插件&#xff0c;一个统计 .NET 应用资源使用情况的插件&#xff0c;包含&#xff…

circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业

# 写代码&#xff0c;有如下列表&#xff0c;按照要求实现每一个功能li [alex, eric, rain]# 计算列表长度并输出length len(li)print(f1-li的长度是&#xff1a;{length})# 列表中追加元素“seven”&#xff0c;并输出添加后的列表li.append(seven)print(2-追加元素后的li是…

python插入排序_python 插入排序,选择排序

插入排序&#xff1a; def insert_sort(lst): for i in range(1,len(lst)): xlst[i] #x是一个临时变量&#xff0c;表示当前轮到的数字 ji #临时变量 j ,为后续的排序提供方便 while j>0 and lst[j-1]>x: #当j 小于0&#xff0c;说明已经数字比较到了第一位&#xff0c;说…

【Vscode】调试DotNet Core代码

Visual Studio作为宇宙第一的IDE&#xff0c;开发调试.net core app&#xff0c;无一能出其右&#xff0c;我们还需要去了解Visual Studio Code吗&#xff1f;答案是肯定。杀鸡焉用牛刀&#xff1a;就一个hello world的Console App&#xff0c;还需要打开Visual Studio吗&#…

Visual Basic、C# 和 C++ 的数据类型比较(转)

类别类名说明Visual Basic 数据类型C# 数据类型C 托管扩展数据类型JScript 数据类型整数Byte8 位的无符号整数。BytebytecharByteDZX7¢&dot [url]www.cnntec.com[/url]…gT‚sSByte8 位的有符号整数。 不符合 CLS。DZX7¢&dot [url]www.cnntec.com[/url]…gT‚…

pandownload 卢本伟_PanDownload复活了!60MB/s!附下载地址

最近几天&#xff0c;听说PanDownload 复活了有人接盘了&#xff0c;重新制作上线推出了更加强劲的复活版&#xff01;但是笔者去下载了一下&#xff0c;发现并不能使用于是经过百般搜寻&#xff0c;发现被人提供的已经是旧版了于是&#xff0c;我找到了最新版&#xff0c;9月2…