123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /**
- * desc: 对$进行扩展
- * author: wangyang
- * date: 2015-04-11
- */
- define(['config', 'native', 'zepto'], function (config, native, $) {
- (function ($) {
- $.extend($, {
- getScript: function (src, func) {
- var script = document.createElement('script');
- script.async = 'async';
- script.src = src;
- if (func) {
- script.onload = func;
- }
- document.getElementsByTagName('head')[0].appendChild(script);
- },
- //根据域名判断使用ajax还是jsonP
- autoAjax: function (param) {
- param['no_sign'] = 1;
- if (location.host == 'yiguanjia.club') {
- $.ajax(param);
- } else {
- // api接口增加版本号
- param.data['version'] = config.o2oVersion;
- var url = param.url;
- if (url.indexOf('?') == -1) {
- url += '?';
- }
- if (url.charAt(url.length - 1) != '?') {
- url += '&';
- }
- url += 'callback=?';
- if (!!param.data) {
- if (url.charAt(url.length - 1) != '?') {
- url += '';
- }
- url += '&' + $.param(param.data);
- }
- $.ajaxJSONP({
- url: url,
- success: (!!param.success) ? param.success : null,
- error: (!!param.error) ? param.error : null
- })
- }
- },
- //带验证的ajax
- signAjax: function (options) {
- if (config.isIOS || config.isAndroid) {
- var params = options.data;
- var sgf = options.success;
- options.success = function (res) {
- sgf(res);
- }
- if (!!!params.time) {
- params.time = new Date().getTime() / 1000;
- }
- sign_queue.push(options);
- if (sign_queue.length == 1) {
- native.getSign(sign_queue[0].data, sign_callback);
- }
- } else {
- this.autoAjax(options);
- }
- },
- //touch绑定事件的封装
- newTouch: function (el, callback, parent_dom) {
- var event = 'tap';
- if (!((window.DocumentTouch && document instanceof DocumentTouch) || 'ontouchstart' in window)) {
- event = 'tap';
- }
- if (parent_dom !== undefined) {
- $(parent_dom).on(event, el, function (ev) {
- callback.call(this, ev);
- });
- } else {
- $(el).on(event, function (ev) {
- callback.call(this, ev);
- });
- }
- },
- // 时间戳转化
- timetrans: function (d) {
- var date = new Date(d * 1000);//如果date为13位不需要乘1000
- var Y = date.getFullYear() + '-';
- var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
- var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
- var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
- var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
- var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
- return Y + M + D + h + m + s;
- },
- // 验证码
- createCode: function createCode(Number) {
- var code = "";
- var codeLength = 4; //验证码的长度
- var i = 0
- // var checkCode = $("#checkCode").val();
- if (Number == 'Number') {
- var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); //随机数
- } else {
- var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
- 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); //随机数
- }
- for (; i < codeLength; i++) { //循环操作
- var charIndex = Math.floor(Math.random() * random.length); //取得随机数的索引
- code += random[charIndex]; //根据索引取得随机数加到code上
- }
- return code; //把code值赋给验证码
- },
- // 判断身份证是否合法
- checkID: function (ID) {
- if (typeof ID !== 'string') return '您输入的身份证包含其他文字';
- if (ID === '') return '身份证号不为空';
- 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 birthday = ID.substr(6, 4) + '/' + Number(ID.substr(10, 2)) + '/' + Number(ID.substr(12, 2));
- var d = new Date(birthday);
- var newBirthday = d.getFullYear() + '/' + Number(d.getMonth() + 1) + '/' + Number(d.getDate());
- var currentTime = new Date().getTime();
- var time = d.getTime();
- var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
- var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
- var sum = 0, i, residue;
- if (!/^\d{17}(\d|x)$/i.test(ID)) return '非法身份证';
- if (city[ID.substr(0, 2)] === undefined) return "非法地区";
- if (time >= currentTime || birthday !== newBirthday) return '非法生日';
- for (i = 0; i < 17; i++) {
- sum += ID.substr(i, 1) * arrInt[i];
- }
- residue = arrCh[sum % 11];
- if (residue !== ID.substr(17, 1)) return '非法身份证哦';
- // return city[ID.substr(0, 2)] + "," + birthday + "," + (ID.substr(16, 1) % 2 ? " 男" : "女") //浙江,1994/7/26, 男
- return true
- }
- })
- //由于加密是异步的,递归调用队列
- var sign_queue = [];
- function sign_callback(res) {
- var options = sign_queue.shift();
- options.data = res.data;
- $.autoAjax(options);
- if (sign_queue.length > 0) {
- native.getSign(sign_queue[0].data, sign_callback);
- }
- }
- })($);
- return $;
- })
|