1 //--下面是全局变量及方法--
2 var path=getRootPath();
3 var pattens = {
4 mobile:"^(1[34578])[0-9]{9}$", //手机号
5 email : "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮箱
6 idCard:"(^\\d{15}$)|(^\\d{17}([0-9]|X)$)", //身份证
7 tel:"^(1[34578][0-9]{9,9}|([48]00(?:[0-9]{7,7}|-[0-9]{7,7}|-[0-9]{3,3}-[0-9]{4,4}|-[0-9]{4,4}-[0-9]{3,3}|[0-9]-[0-9]{3,3}-[0-9]{3,3}|[0-9]-[0-9]{2,2}-[0-9]{4,4}))|([0-9]{3,4}(\-|\\s))?[0-9]{7,8}((\-|\\s)[0-9]{3,4})?)$", //电话(固定电话+手机)
8 fixPhone:"^(([48]00(?:[0-9]{7,7}|-[0-9]{7,7}|-[0-9]{3,3}-[0-9]{4,4}|-[0-9]{4,4}-[0-9]{3,3}|[0-9]-[0-9]{3,3}-[0-9]{3,3}|[0-9]-[0-9]{2,2}-[0-9]{4,4}))|([0-9]{3,4}(\-|\\s))?[0-9]{7,8}((\-|\\s)[0-9]{3,4})?)$" //固定电话
9 }
10
11 function getRootPath(){
12 var pathName=window.document.location.pathname;
13 path=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
14 return path;
15 }
16
17 //验证电话(手机+电话)
18 function test_tel(a){
19 if(!new RegExp(pattens.tel).test(a.val())){
20 $.toast("电话号码不符合规范,请确认!",700);
21 return false;
22 }
23 return true;
24 }
25
26 //验证固定电话
27 function test_fixPhone(a){
28 if(!new RegExp(pattens.fixPhone).test(a.val())){
29 $.toast("电话号码不符合规范,请确认!",700);
30 return false;
31 }
32 return true;
33 }
34
35 //验证手机
36 function test_phone(a){
37 if(!new RegExp(pattens.mobile).test(a.val())){
38 $.toast("手机号码不符合规范,请确认!",700);
39 return false;
40 }
41 return true;
42 }
43
44 //验证邮箱
45 function test_email(a){
46 if(!new RegExp(pattens.email).test(a.val())){
47 $.toast("邮箱不符合规范,请确认!",700);
48 return false;
49 }
50 return true;
51 }
52
53 //验证身份证
54 function test_idCard(a){
55 if(!new RegExp(pattens.idCard).test(a.val())){
56 $.toast("身份证号码格式不正确!",1000);
57 return false;
58 }
59 return true;
60 }
61
62 //三级联动
63 function cityPicker(){
64 $("#city-picker").cityPicker({
65 toolbarTemplate: '<header class="bar bar-nav">\
66 <button class="button button-link pull-right close-picker">确定</button>\
67 <h1 class="title">选择收货地址</h1>\
68 </header>'
69 });
70 }
71
72 //base64原尺寸图片上传
73 function imageBase64(m_this,id){
74 if (typeof m_this.files == 'undefined' || typeof FileReader == 'undefined') {
75 $.toast('当前浏览器不支持图片上传!',700);
76 return false;
77 }
78
79 if(!/image\/\w+/.test(m_this.files[0].type)){
80 $.toast("请上传图片!",700);
81 return false;
82 }
83
84 var reader = new FileReader();
85 reader.onload = function(e) {
86 //this.result 返回结果
87 $(id).attr('src',this.result);
88 };
89 reader.readAsDataURL(m_this.files[0]);
90 }
91
92 /*
93 * checkImageWidth() //检查图片宽度并压缩上传
94 * @param arguments[0] //图片对象this
95 * @param arguments[1] //显示图片id
96 * @param arguments[2] //压缩后图片宽度,''为原尺寸压缩
97 * @param arguments[3] //压缩图片质量,默认为0.8
98 * @param arguments[4] //限制上传图片宽度
99 * */
100 function checkImageWidth() {
101 var that = arguments[0];
102 var id = arguments[1];
103 var wxid = arguments[2];
104 var quality = arguments[3];
105 var file = arguments[0].files[0];
106 var URL = window.URL || window.webkitURL;
107 var blob = URL.createObjectURL(file);
108 var img = new Image();
109 img.src = blob;
110
111 if(!/image\/\w+/.test(that.files[0].type)){
112 $.toast("请上传图片!",1000);
113 return false;
114 }
115
116 if(!!arguments[4]){
117 var wid = arguments[4];
118 }else{
119 $.toast('请给定要限制的图片宽度',1000);
120 return false;
121 }
122 img.onload = function() {
123 if(img.width < wid){
124 $.toast('图片宽度不得小于'+ wid +'px',1000);
125 return false;
126 }
127 cutImageBase64(that,id,wxid,quality);
128 };
129 return true;
130 }
131
132 /*
133 * base64支持压缩尺寸上传
134 * author:zhb
135 * time:2016-05-03
136 * @param m_this //当前对象
137 * @param id //展示图片id
138 * @param wid //压缩后宽度
139 * @param quality //压缩质量
140 * */
141 function cutImageBase64(m_this,id,wid,quality) {
142 var file = m_this.files[0];
143 var URL = window.URL || window.webkitURL;
144 var blob = URL.createObjectURL(file);
145 var base64;
146
147 var img = new Image();
148 img.src = blob;
149
150 img.onload = function() {
151 var that = this;
152
153 //生成比例
154 var w,scale,h = that.height;
155 if(wid == ''){
156 w = that.width;
157 }else{
158 w = wid;
159 }
160 scale = w / h;
161 h = w / scale;
162
163 //生成canvas
164 var canvas = document.createElement('canvas');
165 var ctx = canvas.getContext('2d');
166 $(canvas).attr({
167 width: w,
168 height: h
169 });
170 ctx.drawImage(that, 0, 0, w, h);
171
172 // 生成base64
173 base64 = canvas.toDataURL('image/jpeg', quality || 0.8);
174
175 $(id).attr('src',base64);
176 };
177 }
178
179 /*
180 * 模拟checkBox多选
181 * @param that //当前选择对象
182 * @param num //最多可选个数
183 *
184 * 例子:
185 * <dl id="checkBox" class="checkBoxDiv">
186 * <dd>种子期<input type="checkbox" name="time" value="" class="hidden"></dd>
187 * <dd>天使期<input type="checkbox" name="time" value="" class="hidden"></dd>
188 * <dd>成长期<input type="checkbox" name="time" value="" class="hidden"></dd>
189 * <dd>成熟期<input type="checkbox" name="time" value="" class="hidden"></dd>
190 * </dl>
191 *
192 * 调用:
193 * $(page).on('click','#checkBox dd',function(){
194 * var that = $(this);
195 * checkBoxSelected(that,3);
196 * })
197 *
198 * */
199 function checkBoxSelected(that,num){
200 if(!that.hasClass('active')){
201 if(that.parent().find('.active').size() < num){
202 that.addClass('active').find('input').attr('checked',true);
203 }else{
204 $.toast('最多选择三个!',1000);
205 }
206 }else{
207 that.removeClass('active').find('input').attr('checked',false);
208 }
209 }
210
211 /*
212 * isInteger() //判断是否为整数,是整数返回true,否则返回false
213 * */
214 function isInteger(obj) {
215 return obj%1 === 0
216 }
217
218 /*当前时间与改变后的时间作比较
219 * $(id).returnTime({
220 * onTime : onTime,
221 * changeTime : changeTime,
222 * success:function (data) {
223 * $('#days').html(data.cutDay);
224 * }
225 * });
226 *
227 * */
228 $.fn.returnTime = function (obj) {
229 var _minutes = 1000 * 60;
230 var _hours = _minutes * 60;
231 var _days = _hours * 24;
232 var _years = _days * 365;
233
234 var startTime = new Date(obj.onTime.replace(/-/g,"/"));
235 startTime = Date.parse(startTime); //取得距离 1970/01/01的毫秒数
236
237 var endTime = new Date(obj.changeTime.replace(/-/g,"/"));
238 endTime = Date.parse(endTime);
239
240 var cutTime = endTime - startTime;
241 var cutDays = cutTime/_days;
242
243 var startDay = startTime /_days;
244 var endDay = endTime /_days;
245
246 var result = {
247 startDay :startDay,
248 endDay :endDay,
249 cutDay :cutDays //可配置返回结果
250 };
251
252 obj.success(result); //回调
253 };
1 /*
2 * 裁剪图片
3 * $(id).resizeImage({
4 * that:this, //当前图片对象
5 * cutWid:'', //裁剪尺寸
6 * quality:0.6, //图片质量0~1
7 * limitWid:400, //最小宽度
8 * success:function (data) {
9 * do something...
10 * }
11 * })
12 *
13 * */
14 $.fn.resizeImage = function (obj) {
15 var file = obj.that.files[0];
16 var URL = window.URL || window.webkitURL;
17 var blob = URL.createObjectURL(file);
18 var base64;
19
20 var img = new Image();
21 img.src = blob;
22
23 if(!/image\/\w+/.test(obj.that.files[0].type)){
24 $.toast("请上传图片!",1000);
25 return false;
26 }
27
28 img.onload = function() {
29 if(img.width < obj.limitWid){
30 $.toast('图片宽度不得小于'+ obj.limitWid +'px',1000);
31 return false;
32 }
33 var that = this;
34
35 //生成比例
36 var w,scale,h = that.height;
37 if(obj.cutWid == ''){
38 w = that.width;
39 }else{
40 w = obj.cutWid;
41 }
42 scale = w / h;
43 h = w / scale;
44
45 //生成canvas
46 var canvas = document.createElement('canvas');
47 var ctx = canvas.getContext('2d');
48 $(canvas).attr({
49 width: w,
50 height: h
51 });
52 ctx.drawImage(that, 0, 0, w, h);
53
54 // 生成base64
55 base64 = canvas.toDataURL('image/jpeg', obj.quality || 0.8);
56 var result = {
57 base64:base64
58 };
59
60 //成功后的回调
61 obj.success(result);
62 };
63 };
64
65 //相册弹窗
66 $.fn.popupImage = function (obj) {
67 var $this = obj.this;
68 var sj_w = $this[0].naturalHeight;
69 var src = $this.attr('src');
70 var h = $('body').height();
71 var w = $('body').width();
72 var padding = 10;
73 var shadeW = w - padding*2;
74 var img = '',shade = '';
75
76 img = '<div class="popup-image" style="position:absolute; top:0; left:0; z-index: 999999; padding:10px '+padding+'px; width: '+w+'px; height:'+h+'px; line-height: '+h+'px; text-align: center;" >' +
77 '<img src="'+src+'" style="max-width: '+shadeW+'px"/></div>';
78 shade = '<div class="shade" style="position:absolute; top:0; left:0; width: '+w+'px; height:'+h+'px;background: #000; z-index: 999990; opacity: .8;"></div>';
79
80 $('body').append(shade);
81 $('body').append(img);
82
83 $('.popup-image').on('click',function () {
84 $('.popup-image').remove();
85 $('.shade').remove();
86 })
87
88 };
89
90 function checkBox(param){
91 if(!param.id.hasClass('active')){
92 if(param.id.parent().find('.active').size() < param.num){
93 param.id.addClass('active').find('input').attr('checked',true);
94 }else{
95 $.toast('最多选择三个!',1000);
96 return false;
97 }
98 }else{
99 param.id.removeClass('active').find('input').attr('checked',false);
100 }
101 }