js封装

类型检测封装

function type(target) {
    var ret = typeof(target);
    var template = {
        "[object Array]": "array",
        "[object Object]":"object",
        "[object Number]":"number - object",
        "[object Boolean]":"boolean - object",
        "[object String]":'string-object',
        "[object Date]":"Date - object"
    }
 
    if(target === null) {
        return 'null'; //null
    }else if(ret == "object"){ //object(Function,Date,Array)
        var str = Object.prototype.toString.call(target);
        return template[str]; 
    }else{           //基本数据类型(包括undefine,String,number,Boolean)
        return ret; 
    }
}

事件封装

var eventUtil = {
     //捕获对象
     getEvent: function (event) {
          return event ? event : window.event;
     },
     //得到对象type属性
     getType: function (event) {
          console.log(event.type);
     },
     //捕获事件目标
     getTarget: function () {
          return event.target || event.srcElement;
     },
     //跨浏览器添加事件处理程序
     addHandler: function (element, type, handler) {
          if (element.addEventListener) {
               element.addEventListener(type, handler, false);
          } else if (element.attachEvent) {
               element.attachEvent('on' + type, handler)
          } else {
               element['on' + type] = handler
          }
     },
     //跨浏览器删除事件处理程序
     removeHandler: function (element, type, handler) {
          if (element.removeEventListener) {
               element.removeEventListener(type, handler, false);
          } else if (element.detachEvent) {
               element.detachEvent('on' + type, handler);
          } else {
               element['on' + type] = null;
          }
     },
     //阻止事件冒泡
     stopPropagation: function (event) {
          if (event.stopPropagation) {
               event.stopPropagation();
          } else {
               event.cancelBubble = true;
          }
     },
     //阻止默认行为
     preventDefault: function (event) {
          if (event.preventDefault) {
               event.preventDefault();
          } else {
               event.returnValue = false;
          }
     },
     //获得与事件目标相关的节点
     getRelatedTarget: function (event) {
          if (event.relatedTarget) {
               return event.relatedTarget;
          } else if (event.toElement) {
               return event.toElement;
          } else if (event.fromElement) {
               return event.fromElement;
          } else {
               return null;
          }

     },

     //获取键盘码
     getCharCode: function (event) {
          if (typeof event.charCode == "number") {
               return event.charCode;
          } else {
               return event.keyCode;
          }
     },
     //获取鼠标按键
     getButton: function (event) {
          if (document.implementation.hasFeature("MouseEvents", "2.0")) {
               return event.button;
          } else {
               switch (event.button) {
                    case 0: //没有按下按钮
                    case 1: //按下主鼠标按钮
                    case 3: //同时按下主次鼠标按钮
                    case 4: //按下鼠标中间按钮
                         return 1; //次
                    case 5: //同时按下主中间
                    case 6: //同时按下次中间
                         return 2; //中间
                    case 7: //同时按下三个
                         return 0; //主
                    case 2: //按下了次鼠标按钮                                                  
               }
          }
     },
     //鼠标滚轮事件
     getWheelDelta: function (event) {
          if (event.wheelDelta) {
               return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);
          } else {
               return -event.detail * 40;
          }
     },
     //获取剪切板数据
     getClipboardText: function (event) {
          var clipboardData = (event.clipboardData || window.clipboardData);
          return clipboardData.getData("text");
     },
     //为剪切板设置数据
     setClipboardText: function (event, value) {
          if (event.clipboardData) {
               event.clipboardData.setData("text/plain", value);
          } else if (window.clipboardData) {
               window.clipboardData.setData("text", value);
          }
     }

}

表单验证封装



//判断整数num是否等于0

function isIntEqZero(num){

return num==0;

}

//判断整数num是否大于0

function isIntGtZero(num){

return num>0;

}

//判断整数num是否大于或等于0

function isIntGteZero(num){

return num>=0;

}

//判断浮点数num是否等于0

function isFloatEqZero(num){

return num==0;

}



// 判断浮点数num是否大于0



function isFloatGtZero(num){

return num>0;

}

//判断浮点数num是否大于或等于0

function isFloatGteZero(num){

return num>=0;

}

//匹配Email地址

function isEmail(str){

if(str==null||str=="") return false;

var result=str.match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);

if(result==null)return false;

return true;

}


//判断数值类型,包括整数和浮点数

function isNumber(str){

if(isDouble(str) || isInteger(str)) return true;

return false;

}


//只能输入数字[0-9]

function isDigits(str){

if(str==null||str=="") return false;

var result=str.match(/^\d+$/);

if(result==null)return false;

return true;

}


// 匹配money


function isMoney(str){

if(str==null||str=="") return false;

var result=str.match(/^(([1-9]\d*)|(([0-9]{1}|[1-9]+)\.[0-9]{1,2}))$/);

if(result==null)return false;

return true;

}

//匹配phone

function isPhone(str){

if(str==null||str=="") return false;

var result=str.match(/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/);

if(result==null)return false;

return true;

}

 //匹配mobile


function isMobile(str){

if(str==null||str=="") return false;

var result=str.match(/^((\(\d{2,3}\))|(\d{3}\-))?((13\d{9})|(15\d{9})|(18\d{9}))$/);

if(result==null)return false;

return true;

}


//联系电话(手机/电话皆可)验证

function isTel(String text){

if(isMobile(text)||isPhone(text)) return true;

return false;

}

//匹配qq

function isQq(str){

if(str==null||str=="") return false;

var result=str.match(/^[1-9]\d{4,12}$/);

if(result==null)return false;

return true;

}

//匹配english

function isEnglish(str){

if(str==null||str=="") return false;

var result=str.match(/^[A-Za-z]+$/);

if(result==null)return false;

return true;

}

//匹配integer


function isInteger(str){

if(str==null||str=="") return false;

var result=str.match(/^[-\+]?\d+$/);

if(result==null)return false;

return true;

}


//匹配double或float

function isDouble(str){

if(str==null||str=="") return false;

var result=str.match(/^[-\+]?\d+(\.\d+)?$/);

if(result==null)return false;

return true;

}


//匹配邮政编码

function isZipCode(str){

if(str==null||str=="") return false;

var result=str.match(/^[0-9]{6}$/);

if(result==null)return false;

return true;

}
//匹配URL

function isUrl(str){

if(str==null||str=="") return false;

var result=str.match(/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"])*$/);

if(result==null)return false;

return true;

}

//匹配密码,以字母开头,长度在6-12之间,只能包含字符、数字和下划线。

function isPwd(str){

if(str==null||str=="") return false;

var result=str.match(/^[a-zA-Z]\\w{6,12}$/);

if(result==null)return false;

return true;

}

//判断是否为合法字符(a-zA-Z0-9-_)


function isRightfulString(str){

if(str==null||str=="") return false;

var result=str.match(/^[A-Za-z0-9_-]+$/);

if(result==null)return false;

return true;

}

//匹配english

function isEnglish(str){

if(str==null||str=="") return false;

var result=str.match(/^[A-Za-z]+$/);

if(result==null)return false;

return true;

}

//匹配身份证号码

function isIdCardNo(num){

// if (isNaN(num)) {alert("输入的不是数字!"); return false;}

var len = num.length, re;

if (len == 15)

re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);

else if (len == 18)

re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);

else {alert("输入的数字位数不对。"); return false;}

var a = num.match(re);

if (a != null)

{

if (len==15)

{

var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);

var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

}

else

{

var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);

var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

}

if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对。"); return false;}

}

if(!re.test(num)){alert("身份证最后一位只能是数字和字母。");return false;}

return true;

}

//匹配汉字

function isChinese(str){

if(str==null||str=="") return false;

var result=str.match(/^[\u4e00-\u9fa5]+$/);

if(result==null)return false;

return true;

}

//匹配中文(包括汉字和字符)

function isChineseChar(str){

if(str==null||str=="") return false;

var result=str.match(/^[\u0391-\uFFE5]+$/);

if(result==null)return false;

return true;

}

//字符验证,只能包含中文、英文、数字、下划线等字符。

function stringCheck(str){

if(str==null||str=="") return false;

var result=str.match(/^[a-zA-Z0-9\u4e00-\u9fa5-_]+$/);

if(result==null)return false;

return true;

}

//过滤中英文特殊字符,除英文"-_"字符外

function stringFilter(str){

var pattern = new RegExp("[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]");

var rs = "";

for (var i = 0; i < str.length; i++) {

rs = rs + str.substr(i, 1).replace(pattern, '');

}

return rs;

}

//判断是否包含中英文特殊字符,除英文"-_"字符外

function isContainsSpecialChar(str){

if(str==null||str=="") return false;

var reg = RegExp(/[(\ )(\`)(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\+)(\=)(\|)(\{)(\})(\')(\:)(\;)(\')(',)(\[)(\])(\.)(\<)(\>)(\/)(\?)(\~)(\!)(\@)(\#)(\¥)(\%)(\…)(\&)(\*)(\()(\))(\—)(\+)(\|)(\{)(\})(\【)(\】)(\‘)(\;)(\:)(\”)(\“)(\’)(\。)(\,)(\、)(\?)]+/);

return reg.test(str);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值