使用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] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...
随机推荐
- 移动端HTML5框架
一:移动端HTML5框架 http://jquerymobile.com/jQuery Mobile http://jqtjs.com/jQTouch http://www.sencha.com/pr ...
- MySQL 官方文档
MySQL 5.6 Reference Manual Preface and Legal Notices 1 General Information 2 Installing and Upgradin ...
- OpenERP登录页面调整
在OpenERP的登录页面中,有针对数据库管理的链接,为了安全起见,一般都会通过修改原始的XML来实现隐藏的目的.但这样每次重新安装以后,都要重新修改,很不方便,所以我们可以通过建立一个新模块的方式来 ...
- thunder 更改迅雷默认播放器
更改迅雷的边下边播默认播放器 CreateTime--2017年10月31日08:33:57 Author:Marydon 1.找到迅雷的安装目录,如:D:\SoftWares\PortableE ...
- Android开发之Google Map
2013-07-03 Google Map 提供三种视图: 1. 传统的矢量地图,提供行政区域.交通以及商业信息等. 2. 不同分辨率的卫星照片,与Google Earth 基本一样. 3. 地形地图 ...
- 转载【微信支付】jsapi支付之传参问题(使用微信官方SDK之PHP版本) V3之WxpayPubHelper 亲测有效,V3WxpayAPI_php_v3.zip版未测试,理论上也是一样的。
本文转载至:http://blog.csdn.net/geeklx/article/details/51146151 (微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请 ...
- Docker配置本地镜像与容器的存储位置
默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root Dir" ...
- dom与jquery互相转换
/*取得<input>标签中的value属性的内容[dom对象->jquery对象] var inputElement = document.getElementById(" ...
- Mysql Communications link failure 问题的解决
问题现象 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last p ...
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建 ...