网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 用htc实现验证模块
内容
    代码如下:
    /***************************************************************************************
    * validate1.0
    * 此代码版权归海洋工作室ocean所有,您可以非商业目的使用、复制、修改此代码,但需要
    * 保留本工作室的版权信息。如果您使用、修改此代码为商业目的,请联系本工作室取得使用许可。
    *
    * 如果您对本程序有什么建议,请email to:ocean@forever.net.cn。
    *
    * 海洋工作室
    *
    * ocean() 制作
    *****************************************************************************************/
    //键盘事件
    <public:attach event=onkeypress onevent=doevent() />
    //粘贴事件
    <public:attach event=onpaste onevent=doevent() />
    //失去焦点事件
    <public:attach event=onblur onevent=doevent() />
    <script language=jscript>
    //预定义的检查模式
    var regarray = new array(
    new array(int+0,^\\d+$,,需要输入一个非负整数,请重新检查), //非负整数(正整数 + 0)
    new array(int+,^[0-9]*[1-9][0-9]*$,^\\d+$,需要输入一个正整数,请重新检查), //正整数
    new array(int-0,^((-\\d+)|(0+))$,^(-|(-\\d+)|(0+))$,需要输入一个非正整数,请重新检查), //非正整数(负整数 + 0)
    new array(int-,^-[0-9]*[1-9][0-9]*$,^(-|(-\\d+)|(0+))$,需要输入一个负整数,请重新检查), //负整数
    new array(int,^-?\\d+$,^-|(-?\\d+)$,需要输入一个整数,请重新检查), //整数
    new array(double+0,^\\d+(,需要输入一个非负浮点数,请重新检查), //非负浮点数(正浮点数 + 0)
    new array(double+,^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$,^((,需要输入一个正浮点数,请重新检查), //正浮点数
    new array(double-0,^((-\\d+(,需要输入一个非正浮点数,请重新检查), //非正浮点数(负浮点数 + 0)
    new array(double-,^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$,^(-|(-\\d+\\.?)|(-\\d+\\.\\d+))$,需要输入一个负浮点数,请重新检查), //负浮点数
    new array(double,^(-?\\d+)(,需要输入一个浮点数,请重新检查), //浮点数
    new array(char,^[a-za-z]+$,,您只能输入英文字母,请重新检查), //由26个英文字母组成的字符串
    new array(upperchar,^[a-z]+$,,您只能输入英文大写字母,请重新检查), //由26个英文字母的大写组成的字符串
    new array(lowerchar,^[a-z]+$,,您只能输入英文小写字母,请重新检查), //由26个英文字母的小写组成的字符串
    new array(digitchar,^[a-za-z0-9]+$,,您只能输入数字和英文字母,请重新检查), //由数字和26个英文字母组成的字符串
    new array(digitchar_,^\\w+$,,您只能输入数字、英文字母和下划线,请重新检查), //由数字、26个英文字母或者下划线组成的字符串
    new array(email,^[\\w-]+(,需要输入正确的email地址,请重新检查), //email地址
    new array(url,^[a-za-z]+://(>,需要输入正确的url地址,请重新检查) //url
    );
    //受控元素默认的事件处理程序
    function doevent() {
    //得到触发事件的类型
    var type = window.event.type;
    //得到触发元素的值。
    var value = window.event.srcelement.value;
    if (type == keypress) { //如果是键盘按下事件,得到键盘按下后的值
    var keycode = window.event.keycode;
    if (typeof(window.event.srcelement.upper) != undefined) { //如果定义了转换大写
    if (keycode >= 97 && keycode <= 122)
    keycode = window.event.keycode = keycode - 32;
    }
    else if (typeof(window.event.srcelement.lower) != undefined) { //如果定义了转换小写
    if (keycode >= 65 && keycode <= 90)
    keycode = window.event.keycode = keycode + 32;
    }
    value += string.fromcharcode(keycode);
    }
    else if (type == paste) {
    value += window.clipboarddata.getdata(text);
    }
    //如果触发元素的值为空,则表示用户没有输入,不接受检查。
    if (value == ) return;
    //如果触发元素没有设置reg属性,则返回不进行任何检查。
    if (typeof(window.event.srcelement.reg) == undefined) return;
    //如果触发元素没有定义check属性,则在按键和粘贴事件中不做检查
    if ((type == keypress || type == paste) && typeof(window.event.srcelement.check) == undefined) return;
    //如果没有通过检查模式,出现的错误信息
    var msg = ;
    //得到检查模式
    var reg = window.event.srcelement.reg;
    //正则表达式对象
    var regexp = null;
    //从预定义的检查模式中查找正则表达式对象
    for (var i=0;i<regarray.length;i++) {
    if (regarray[i][0] == reg) {
    if ((type == keypress || type == paste) && regarray[i][2] != )
    regexp = new regexp(regarray[i][2]); //查找到预定义的检查模式
    else
    regexp = new regexp(regarray[i][1]); //查找到预定义的检查模式
    msg = regarray[i][3]; //定义预定义的报错信息
    break; //查找成功,退出循环
    }
    }
    if (regexp == null) { //如果没有查找到预定义的检查模式,说明reg本身就为正则表达式对象。
    if ((type == keypress || type == paste) && typeof(window.event.srcelement.regcheck) != undefined)
    regexp = new regexp(window.event.srcelement.regcheck); //按照用户自定义的正则表达式生成正则表达式对象。
    else
    regexp = new regexp(reg); //按照用户自定义的正则表达式生成正则表达式对象。
    msg = 输入错误,请重新检查; //错误信息
    }
    //检查触发元素的值符合检查模式,直接返回。
    if (regexp.test(value)) return;
    if (type == blur) { //如果是失去焦点并且检查不通过,则需要出现错误警告框。
    //判断用户是否自己定义了错误信息
    if (typeof(window.event.srcelement.msg) != undefined)
    msg = window.event.srcelement.msg;
    //显示错误信息
    alert(msg);
    //将焦点重新聚回触发元素
    window.event.srcelement.focus();
    window.event.srcelement.select();
    }
    else { //如果是键盘按下或者粘贴事件并且检查不通过,则取消默认动作。
    //取消此次键盘按下或者粘贴操作
    window.event.returnvalue = false;
    }
    }
    </script>
    应用例子:
    代码如下:
    <html>
    <head>
    <style type=text/css>
    table {
    width:100%;
    }
    input {
    behavior:url(validate.htc);
    }
    </style>
    </head>
    <body style=margin:0>
    <table>
    <tr><td><a href=> border=0 src=logo.jpg></a></td></tr>
    </table>
    <br>
    <table style=margin-left:20px>
    <tr>
    <td>验证规则</td>
    <td>实时检测</td>
    <td>失去焦点时检测</td>
    </tr>
    <tr>
    <td>非负整数(正整数 + 0)</td>
    <td><input type=text value= reg=int+0 check></td>
    <td><input type=text value= reg=int+0></td>
    </tr>
    <tr>
    <td>正整数</td>
    <td><input type=text value= reg=int+ check></td>
    <td><input type=text value= reg=int+></td>
    </tr>
    <tr>
    <td>非正整数(负整数 + 0)</td>
    <td><input type=text value= reg=int-0 check></td>
    <td><input type=text value= reg=int-0></td>
    </tr>
    <tr>
    <td>负整数</td>
    <td><input type=text value= reg=int- check></td>
    <td><input type=text value= reg=int-></td>
    </tr>
    <tr>
    <td>整数</td>
    <td><input type=text value= reg=int check></td>
    <td><input type=text value= reg=int></td>
    </tr>
    <tr>
    <td>非负浮点数(正浮点数 + 0)</td>
    <td><input type=text value= reg=double+0 check></td>
    <td><input type=text value= reg=double+0></td>
    </tr>
    <tr>
    <td>正浮点数</td>
    <td><input type=text value= reg=double+ check></td>
    <td><input type=text value= reg=double+></td>
    </tr>
    <tr>
    <td>非正浮点数(负浮点数 + 0)</td>
    <td><input type=text value= reg=double-0 check></td>
    <td><input type=text value= reg=double-0></td>
    </tr>
    <tr>
    <td>负浮点数</td>
    <td><input type=text value= reg=double- check></td>
    <td><input type=text value= reg=double-></td>
    </tr>
    <tr>
    <td>浮点数</td>
    <td><input type=text value= reg=double check></td>
    <td><input type=text value= reg=double></td>
    </tr>
    <tr>
    <td>由26个英文字母组成的字符串</td>
    <td><input type=text value= reg=char check></td>
    <td><input type=text value= reg=char></td>
    </tr>
    <tr>
    <td>由26个英文字母的大写组成的字符串(输入小写字母会自动转换成大写)</td>
    <td><input type=text value= reg=upperchar check upper></td>
    <td><input type=text value= reg=upperchar upper></td>
    </tr>
    <tr>
    <td>由26个英文字母的小写组成的字符串(输入大写字母会自动转换成小写)</td>
    <td><input type=text value= reg=lowerchar check lower></td>
    <td><input type=text value= reg=lowerchar lower></td>
    </tr>
    <tr>
    <td>由数字和26个英文字母组成的字符串</td>
    <td><input type=text value= reg=digitchar check></td>
    <td><input type=text value= reg=digitchar></td>
    </tr>
    <tr>
    <td>由数字、26个英文字母或者下划线组成的字符串</td>
    <td><input type=text value= reg=digitchar_ check></td>
    <td><input type=text value= reg=digitchar_></td>
    </tr>
    <tr>
    <td>email地址</td>
    <td><input type=text value= reg=email check></td>
    <td><input type=text value= reg=email></td>
    </tr>
    <tr>
    <td>url</td>
    <td><input type=text value= reg=url check></td>
    <td><input type=text value= reg=url></td>
    </tr>
    <tr>
    <td>自定义规则(只能输入aaa),自定义报错信息</td>
    <td><input type=text value= reg=^aaa$ regcheck=^a{1,3}$ msg=只能输入aaa check></td>
    <td><input type=text value= reg=^aaa$ regcheck=^a{1,3}$ msg=只能输入aaa></td>
    </tr>
    </table>
    <hr width=50% style=color: #ff0000>
    <div style=text-align:center;font-size:9pt>copyright 2004 © 海洋工作室(<a href=>)</div>
    <p> </p>
    <p> </p>
    <p> </p>
    <p> </p>
    </body>
    </html>
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 14:15:28