用htc实现验证模块

2023-12-08 0 659

复制代码 代码如下:/*************************************************************************************** *validate1.0 *此代码版权归海洋工作室ocean所有,您可以非商业目的使用、复制、修改此代码,但需要 *保留本工作室的版权信息。如果您使用、修改此代码为商业目的,请联系本工作室取得使用许可。 * *如果您对本程序有什么建议,请emailto:ocean@forever.net.cn。 * *海洋工作室 *http://www.oceanstudio.net *ocean(ocean@forever.net.cn)制作 *****************************************************************************************/ //键盘事件 <PUBLIC:ATTACHEVENT=\”onkeypress\”ONEVENT=\”doEvent()\”/> //粘贴事件 <PUBLIC:ATTACHEVENT=\”onpaste\”ONEVENT=\”doEvent()\”/> //失去焦点事件 <PUBLIC:ATTACHEVENT=\”onblur\”ONEVENT=\”doEvent()\”/> <SCRIPTLANGUAGE=\”JScript\”> //预定义的检查模式 varregArray=newArray( newArray(\”int+0\”,\”^\\\\d+$\”,\”\”,\”需要输入一个非负整数,请重新检查\”),//非负整数(正整数+0) newArray(\”int+\”,\”^[0-9]*[1-9][0-9]*$\”,\”^\\\\d+$\”,\”需要输入一个正整数,请重新检查\”),//正整数 newArray(\”int-0\”,\”^((-\\\\d+)|(0+))$\”,\”^(-|(-\\\\d+)|(0+))$\”,\”需要输入一个非正整数,请重新检查\”),//非正整数(负整数+0) newArray(\”int-\”,\”^-[0-9]*[1-9][0-9]*$\”,\”^(-|(-\\\\d+)|(0+))$\”,\”需要输入一个负整数,请重新检查\”),//负整数 newArray(\”int\”,\”^-?\\\\d+$\”,\”^-|(-?\\\\d+)$\”,\”需要输入一个整数,请重新检查\”),//整数 newArray(\”double+0\”,\”^\\\\d+(\\\\.\\\\d+)?$\”,\”^((\\\\d+\\\\.)|(\\\\d+(\\\\.\\\\d+)?))$\”,\”需要输入一个非负浮点数,请重新检查\”),//非负浮点数(正浮点数+0) newArray(\”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+)?))$\”,\”需要输入一个正浮点数,请重新检查\”),//正浮点数 newArray(\”double-0\”,\”^((-\\\\d+(\\\\.\\\\d+)?)|(0+(\\\\.0+)?))$\”,\”^(-|(-\\\\d+\\\\.)|(0+\\\\.)|(-\\\\d+(\\\\.\\\\d+)?)|(0+(\\\\.0+)?))$\”,\”需要输入一个非正浮点数,请重新检查\”),//非正浮点数(负浮点数+0) newArray(\”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+))$\”,\”需要输入一个负浮点数,请重新检查\”),//负浮点数 newArray(\”double\”,\”^(-?\\\\d+)(\\\\.\\\\d+)?$\”,\”^(-|((-?\\\\d+)(\\\\.\\\\d+)?)|(-?\\\\d+)\\\\.)$\”,\”需要输入一个浮点数,请重新检查\”),//浮点数 newArray(\”char\”,\”^[A-Za-z]+$\”,\”\”,\”您只能输入英文字母,请重新检查\”),//由26个英文字母组成的字符串 newArray(\”upperchar\”,\”^[A-Z]+$\”,\”\”,\”您只能输入英文大写字母,请重新检查\”),//由26个英文字母的大写组成的字符串 newArray(\”lowerchar\”,\”^[a-z]+$\”,\”\”,\”您只能输入英文小写字母,请重新检查\”),//由26个英文字母的小写组成的字符串 newArray(\”digitchar\”,\”^[A-Za-z0-9]+$\”,\”\”,\”您只能输入数字和英文字母,请重新检查\”),//由数字和26个英文字母组成的字符串 newArray(\”digitchar_\”,\”^\\\\w+$\”,\”\”,\”您只能输入数字、英文字母和下划线,请重新检查\”),//由数字、26个英文字母或者下划线组成的字符串 newArray(\”email\”,\”^[\\\\w-]+(\\\\.[\\\\w-]+)*@[\\\\w-]+(\\\\.[\\\\w-]+)+$\”,\”^(([\\\\w-]+(\\\\.[\\\\w-]+)*@?)|([\\\\w-]+(\\\\.[\\\\w-]+)*@[\\\\w-]+)|([\\\\w-]+(\\\\.[\\\\w-]+)*@([\\\\w-]+\\\\.)+)|([\\\\w-]+(\\\\.[\\\\w-]+)*@[\\\\w-]+(\\\\.[\\\\w-]+)+))$\”,\”需要输入正确的email地址,请重新检查\”),//email地址 newArray(\”url\”,\”^[a-zA-z]+://(\\\\w+(-\\\\w+)*)(\\\\.(\\\\w+(-\\\\w+)*))*(\\\\?\\\\S*)?$\”,\”^([a-zA-z]+:?)|([a-zA-z]+:/{1,2})|([a-zA-z]+://(\\\\w+(-\\\\w+)*))|([a-zA-z]+://(\\\\w+(-\\\\w+)*)(\\\\.(\\\\w+(-\\\\w+)*))*(\\\\?\\\\S*)?)$\”,\”需要输入正确的url地址,请重新检查\”)//url ); //受控元素默认的事件处理程序 functiondoEvent(){ //得到触发事件的类型 vartype=window.event.type; //得到触发元素的值。 varvalue=window.event.srcElement.value; if(type==\”keypress\”){//如果是键盘按下事件,得到键盘按下后的值 varkeyCode=window.event.keyCode; if(typeof(window.event.srcElement.upper)!=\”undefined\”){//如果定义了转换大写 if(keyCode>=97&&keyCode<=122) keyCode=window.event.keyCode=keyCode-32; } elseif(typeof(window.event.srcElement.lower)!=\”undefined\”){//如果定义了转换小写 if(keyCode>=65&&keyCode<=90) keyCode=window.event.keyCode=keyCode+32; } value+=String.fromCharCode(keyCode); } elseif(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; //如果没有通过检查模式,出现的错误信息 varmsg=\”\”; //得到检查模式 varreg=window.event.srcElement.reg; //正则表达式对象 varregExp=null; //从预定义的检查模式中查找正则表达式对象 for(vari=0;i<regArray.length;i++){ if(regArray[i][0]==reg){ if((type==\”keypress\”||type==\”paste\”)&&regArray[i][2]!=\”\”) regExp=newRegExp(regArray[i][2]);//查找到预定义的检查模式 else regExp=newRegExp(regArray[i][1]);//查找到预定义的检查模式 msg=regArray[i][3];//定义预定义的报错信息 break;//查找成功,退出循环 } } if(regExp==null){//如果没有查找到预定义的检查模式,说明reg本身就为正则表达式对象。 if((type==\”keypress\”||type==\”paste\”)&&typeof(window.event.srcElement.regcheck)!=\”undefined\”) regExp=newRegExp(window.event.srcElement.regcheck);//按照用户自定义的正则表达式生成正则表达式对象。 else regExp=newRegExp(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> <styletype=\”text/css\”> TABLE{ width:100%; } INPUT{ behavior:url(\”validate.htc\”); } </style> </head> <bodystyle=\”margin:0\”> <table> <tr><td><ahref=\”http://www.oceanstudio.net\”><imgborder=\”0\”src=\”logo.jpg\”></a></td></tr> </table> <br> <tablestyle=\”margin-left:20px\”> <tr> <td>验证规则</td> <td>实时检测</td> <td>失去焦点时检测</td> </tr> <tr> <td>非负整数(正整数+0)</td> <td><inputtype=\”text\”value=\”\”reg=\”int+0\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”int+0\”></td> </tr> <tr> <td>正整数</td> <td><inputtype=\”text\”value=\”\”reg=\”int+\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”int+\”></td> </tr> <tr> <td>非正整数(负整数+0)</td> <td><inputtype=\”text\”value=\”\”reg=\”int-0\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”int-0\”></td> </tr> <tr> <td>负整数</td> <td><inputtype=\”text\”value=\”\”reg=\”int-\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”int-\”></td> </tr> <tr> <td>整数</td> <td><inputtype=\”text\”value=\”\”reg=\”int\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”int\”></td> </tr> <tr> <td>非负浮点数(正浮点数+0)</td> <td><inputtype=\”text\”value=\”\”reg=\”double+0\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”double+0\”></td> </tr> <tr> <td>正浮点数</td> <td><inputtype=\”text\”value=\”\”reg=\”double+\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”double+\”></td> </tr> <tr> <td>非正浮点数(负浮点数+0)</td> <td><inputtype=\”text\”value=\”\”reg=\”double-0\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”double-0\”></td> </tr> <tr> <td>负浮点数</td> <td><inputtype=\”text\”value=\”\”reg=\”double-\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”double-\”></td> </tr> <tr> <td>浮点数</td> <td><inputtype=\”text\”value=\”\”reg=\”double\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”double\”></td> </tr> <tr> <td>由26个英文字母组成的字符串</td> <td><inputtype=\”text\”value=\”\”reg=\”char\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”char\”></td> </tr> <tr> <td>由26个英文字母的大写组成的字符串(输入小写字母会自动转换成大写)</td> <td><inputtype=\”text\”value=\”\”reg=\”upperchar\”checkupper></td> <td><inputtype=\”text\”value=\”\”reg=\”upperchar\”upper></td> </tr> <tr> <td>由26个英文字母的小写组成的字符串(输入大写字母会自动转换成小写)</td> <td><inputtype=\”text\”value=\”\”reg=\”lowerchar\”checklower></td> <td><inputtype=\”text\”value=\”\”reg=\”lowerchar\”lower></td> </tr> <tr> <td>由数字和26个英文字母组成的字符串</td> <td><inputtype=\”text\”value=\”\”reg=\”digitchar\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”digitchar\”></td> </tr> <tr> <td>由数字、26个英文字母或者下划线组成的字符串</td> <td><inputtype=\”text\”value=\”\”reg=\”digitchar_\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”digitchar_\”></td> </tr> <tr> <td>email地址</td> <td><inputtype=\”text\”value=\”\”reg=\”email\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”email\”></td> </tr> <tr> <td>url</td> <td><inputtype=\”text\”value=\”\”reg=\”url\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”url\”></td> </tr> <tr> <td>自定义规则(只能输入\”aaa\”),自定义报错信息</td> <td><inputtype=\”text\”value=\”\”reg=\”^aaa$\”regcheck=\”^a{1,3}$\”msg=\”只能输入aaa\”check></td> <td><inputtype=\”text\”value=\”\”reg=\”^aaa$\”regcheck=\”^a{1,3}$\”msg=\”只能输入aaa\”></td> </tr> </table> <hrwidth=\”50%\”style=\”color:#FF0000\”> <divstyle=\”text-align:center;font-size:9pt\”>copyright2004&copy海洋工作室(<ahref=\”mailto:ocean@forever.net.cn\”>ocean@forever.net.cn</a>)</div> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> </body> </html>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 htc 用htc实现验证模块 https://www.u-9.cn/jiaoben/htc/145116.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务