常用js函数

来源:互联网 发布:apache日志格式 编辑:程序博客网 时间:2024/04/29 00:54

判断是否微信浏览器

function is_weixn(){      var ua = navigator.userAgent.toLowerCase();      if(ua.match(/MicroMessenger/i)=="micromessenger") {          return true;      } else {          return false;      }  }  

判断是什么浏览器,什么语言

用来检查是否是(Mobile)、ipad、iphone、微信、QQ等。
第一种:来自http://blog.baiwand.com/?post=176

<script type="text/javascript">//判断访问终端var browser={    versions:function(){        var u = navigator.userAgent, app = navigator.appVersion;        return {            trident: u.indexOf('Trident') > -1, //IE内核            presto: u.indexOf('Presto') > -1, //opera内核            webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核            gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端            android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端            iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器            iPad: u.indexOf('iPad') > -1, //是否iPad            webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部            weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)            qq: u.match(/\sQQ/i) == " qq" //是否QQ        };    }(),    language: (navigator.browserLanguage || navigator.language).toLowerCase()}</script>使用方法://判断是否IE内核if(browser.versions.trident){ alert("is IE"); }//判断是否webKit内核if(browser.versions.webKit){ alert("is webKit"); }//判断是否移动端if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("移动端"); }检测浏览器语言currentLang = navigator.language;   //判断除IE外其他浏览器使用语言if(!currentLang){//判断IE浏览器使用语言    currentLang = navigator.browserLanguage;}alert(currentLang);

第二种:来自http://www.fufuok.com/JS-iphone-android.html

//如果是iosif (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {    //alert(navigator.userAgent);      window.location.href ="iPhone.html";} else if (/(Android)/i.test(navigator.userAgent)) { //如果是安卓    //alert(navigator.userAgent);     window.location.href ="Android.html";} else { //其余都跳    window.location.href ="pc.html";};

判断身份证和电话号码

   .directive('patternIdentityCard', ['$ionicPopup','UtilityService','CommonData', function ($ionicPopup,UtilityService,CommonData) {        return {            restrict: 'A',            templateUrl: 'js/partials/shoppingcart/tpls_shopcart.html',            link: function (scope, element, attr) {                element.on('keyup', function (e) {                    //console.log(element.val());                });                //失去焦点                element.on('blur', function (e, source) {                    var _value = element.val();                    if ('' !== _value) {                        var _result = IdentityCodeValid(_value);                        if (!_result) {                            CommonData.Alert({title: '地址管理', template: tip});                         /*   UtilityService.Common.Alert({title:'登陆', template: '请输入登陆信息'});*/                            alert(tip);                        }                    }                });                var tip = "";                function IdentityCodeValid(code) {                    var city = {                        11: "北京",                        12: "天津",                        13: "河北",                        14: "山西",                        15: "内蒙古",                        21: "辽宁",                        22: "吉林",                        23: "黑龙江 ",                        31: "上海",                        32: "江苏",                        33: "浙江",                        34: "安徽",                        35: "福建",                        36: "江西",                        37: "山东",                        41: "河南",                        42: "湖北 ",                        43: "湖南",                        44: "广东",                        45: "广西",                        46: "海南",                        50: "重庆",                        51: "四川",                        52: "贵州",                        53: "云南",                        54: "西藏 ",                        61: "陕西",                        62: "甘肃",                        63: "青海",                        64: "宁夏",                        65: "新疆",                        71: "台湾",                        81: "香港",                        82: "澳门",                        91: "国外 "                    };                    //检查号码是否符合规范,包括长度,类型                    var isCardNo = function (card) {                        //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X                        var reg = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/;                        if (reg.test(card) === false) {                            return false;                        }                        return true;                    };                    //取身份证前两位,校验省份                    var checkProvince = function (card) {                        var province = card.substr(0, 2);                        if (city[province] == undefined) {                            return false;                        }                        return true;                    };                    //检查生日是否正确                    var checkBirthday = function (card) {                        var len = card.length;                        //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字                        if (len == '15') {                            var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;                            var arr_data = card.match(re_fifteen);                            var year = arr_data[2];                            var month = arr_data[3];                            var day = arr_data[4];                            var birthday = new Date('19' + year + '/' + month + '/' + day);                            return verifyBirthday('19' + year, month, day, birthday);                        }                        //身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X                        if (len == '18') {                            var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X|x)$/;                            var arr_data = card.match(re_eighteen);                            var year = arr_data[2];                            var month = arr_data[3];                            var day = arr_data[4];                            var birthday = new Date(year + '/' + month + '/' + day);                            return verifyBirthday(year, month, day, birthday);                        }                        return false;                    };                    //校验日期                    var verifyBirthday = function (year, month, day, birthday) {                        var now = new Date();                        var now_year = now.getFullYear();                        //年月日是否合理                        if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {                            //判断年份的范围(3岁到100岁之间)                            var time = now_year - year;                            if (time >= 3 && time <= 100) {                                return true;                            }                            return false;                        }                        return false;                    };                    //校验位的检测                    var checkParity = function (card) {                        //15位转18位                        card = changeFivteenToEighteen(card);                        var len = card.length;                        if (len == '18') {                            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);                            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');                            var cardTemp = 0, i, valnum;                            for (i = 0; i < 17; i++) {                                cardTemp += card.substr(i, 1) * arrInt[i];                            }                            valnum = arrCh[cardTemp % 11];                            if (valnum.toUpperCase() === card.substr(17, 1).toUpperCase()) {                                return true;                            }                            return false;                        }                        return false;                    };                    //15位转18位身份证号                    var changeFivteenToEighteen = function (card) {                        if (card.length == '15') {                            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);                            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');                            var cardTemp = 0, i;                            card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);                            for (i = 0; i < 17; i++) {                                cardTemp += card.substr(i, 1) * arrInt[i];                            }                            card += arrCh[cardTemp % 11];                            return card;                        }                        return card;                    };                    var pass = isCardNo(code);                    if (!pass) {                        tip = "您输入的身份证号码位数不正确,请重新输入";                        return pass;                    }                    pass = checkProvince(code);                    if (!pass) {                        tip = "您输入的身份证号码所在地错误,请重新输入";                        return pass;                    }                    pass = checkBirthday(code);                    if (!pass) {                        tip = "您输入的身份证号码出生日期错误,请重新输入";                        return pass;                    }                    pass = checkParity(code);                    if (!pass) {                        tip = "您的身份证后四位不正确,请重新输入";                        return pass;                    }                    return pass;                }            }        }    }])    .directive('patternTel', ['$ionicPopup', function ($ionicPopup) {          //判断用户输入的手机号是否正确。        return {            restrict: 'AC',            link: function (scope, element, attr) {                element.on('blur', function (e) {                    var _val = element.val().trim();                    var ex = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/;                    var result = ex.test(_val);                    if (!result) {                        scope.telPatternPass = false;                    }                });                element.on('keyup', function () {                    scope.$apply(function () {                        var _val = element.val().trim();                        if (typeof _val === 'undefined' || '' === _val) {                            scope.telPatternPass = true;                            return;                        }                        var ex = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/;                        var result = ex.test(_val);                        scope.telPatternPass = result;                        //var ex1 =80123456789 // [0123456789]                        var exNumber = /^1[0-9]*$/;                        if (!exNumber.test(_val)) {                            _val = String(_val).substr(0, _val.length - 1);                            $(element).val(_val);                        }                    })                });                element.on('keypress', function () {                    //只能输入数字                    scope.$apply(function () {                        var keyCode = event.keyCode;                        if ((keyCode >= 48 && keyCode <= 57)) {                            event.returnValue = true;                        }                        else {                            event.returnValue = false;                        }                    })                })            }        }    }])

生成随机字符串

function randomString(len) {  len = len || 32;  //默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1  var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';  var maxPos = chars.length;  var pwd = '';  for (i = 0; i < len; i++) {    pwd += chars.charAt(Math.floor(Math.random() * maxPos));  }  return pwd;}
0 0
原创粉丝点击