1,获取文件本地url,在上传之前预览
/** * 获取图片嗯滴url,在上传之前预览 * @param file 选择的图片文件 * @returns {*} url */ getFileLocationUrl: function (file) { var url = null; // 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已 if (window.createObjectURL != undefined) { // basic url = window.createObjectURL(file); } else if (window.URL != undefined) { // mozilla(firefox) url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { // webkit or chrome url = window.webkitURL.createObjectURL(file); } return url; }
使用方法:
//html: <img src="{{person.HeadImgUrl}}" style=" 100%;height: 100%;"> //js: var file = document.getElementById("up").files[0]; $scope.person.HeadImgUrl = API.getFileLocationUrl(file);
2,ajax上传文件:
1 /** 2 * 上传文件 3 * @param file input[type=file]选择的文件 4 * @param fileName 文件名称 5 * @param postUrl 请求的后台url地址 6 * @param token 验证的token 7 * @param callBack 回调(接收上传结果) 8 */ 9 function uploadFile (file, fileName, postUrl, token, successCallBack, errorCallBack) { 10 var formData = new FormData(); 11 formData.append('uploadFile', file); 12 formData.append('PicName', fileName); 13 14 $.ajax({ 15 url: postUrl, 16 data: formData, 17 dataType: "json", 18 type: "POST", 19 beforeSend: function (request) { 20 request.setRequestHeader("Authorization", token); 21 }, 22 //async: true, 23 cache: false, 24 contentType: false, 25 processData: false, 26 success: function (data) { 27 API.log(data); 28 successCallBack(data); 29 }, 30 error: function (data) { 31 errorCallBack(data); 32 console.log(data); 33 } 34 }); 35 }
3,去空格处理,包括文字中间的空格以及首尾的空格
/** * string 去空格操作 * @param str 要去空格的字符串 * @returns {string} 去完空格以后的字符串 */ function safeFilter (str) { return str.replace(/[ ]/g, ""); }, /** * 对一个对象中每个值进行安全检测, 去空格操作 * @param str 要去空格的对象 * @returns {string} 去完空格以后的对象 */ function everyProp (dataObj) { if (typeof dataObj == "string") { return this.safeFilter(dataObj); } for (prop in dataObj) { if (typeof dataObj[prop] == "object" && Array.isArray(dataObj[prop])) { var list = dataObj[prop]; for (var i = 0; i < list.length; i++) { list[i] = everyProp(list[i]); } } else if (typeof dataObj[prop] == "object" && (dataObj[prop]) instanceof Object) { dataObj[prop] = everyProp(dataObj[prop]); } else if (typeof dataObj[prop] == "string") { if (prop != "FormMeta") { dataObj[prop] = safeFilter(dataObj[prop]); } } } return dataObj; }
4,js操作cookie
//写入Cookie //name cookie名字 //value cookie的值 //expires 绝对过期时间,距现在的毫秒数 如30天:new date()+30*24*60*60*1000 setCookie: function (name, value, expires, path, domin, secure) { var cookie = name + "=" + encodeURIComponent(value); if (expires) { cookie += ";expires=" + expires.toGMTString(); } if (path) { cookie += ";path=" + path; } if (domin) { cookie += ";domin=" + domin; } if (secure) { cookie += ";secure=" + secure; } document.cookie = cookie; }, //获取指定名称的cookie值 getCookie: function (name) { var sRe = "(?:;)?" + name + "=([^;]*);?"; var oRe = new RegExp(sRe); if (oRe.test(document.cookie)) { return decodeURIComponent(RegExp["$1"]); } else { return null; } },
5,动态加载和移除css 、js文件
/** * 动态加载CSS * @param {string} url 样式地址 */ dynamicLoadCss: function (url) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; head.appendChild(link); }, /** * 动态加载JS * @param {string} url 脚本地址 * @param {function} callback 回调函数 */ dynamicLoadJs: function (url, callback) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; if (typeof (callback) == 'function') { script.onload = script.onreadystatechange = function () { if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") { callback(); script.onload = script.onreadystatechange = null; } }; } head.appendChild(script); }, /** * 动态移除CSS文件 * @param {string} filename css文件名称 */ dynamicRemoveCssfile: function (filename) { var targetAttr = "href"; var els = document.getElementsByTagName("link"); for (var i = els.length; i >= 0; i--) { if (els[i] && els[i].getAttribute("href") != null && els[i].getAttribute("href").indexOf(filename) != -1) els[i].parentNode.removeChild(els[i]); } },
6,格式化日期为固定格式“yyyy-mm-dd”,或 获取当日日期
/** * 获取今日日期,或格式化日期为固定格式“yyyy-MM-dd”, * @param {Date} date 指定的要格式化的日期,缺省时获取当前日期 * @returns {string}返回yyyy-mm-dd格式字符串 */ formatDateOrToday: function (date) { var dd = date || new Date(); var y = dd.getFullYear(); var m = dd.getMonth() + 1; var d = dd.getDate(); m = m < 10 ? "0" + m : m; d = d < 10 ? "0" + d : d; var day = y + "-" + m + "-" + d; return day; }
7,获取今天,昨天。明天 的日期
/** * 得到今天、昨天、明天日期 * @param {int} dates 0代表今日,-1代表昨日,1代表明日, * @returns {string}返回yyyy-mm-dd格式字符串 */ getDate: function (dates) { var dd = new Date(); var n = dates || 0; dd.setDate(dd.getDate() + n); return this.formatDateOrToday(dd); },
8,获取本周,上周,下周的起始和结束时间
/** * 获取本周,上周,下周的起始和结束时间 * @param {string} type "s"代表开始,"e"代表结束 * @param {int} dates 不传或0代表本周,-1代表上周,1代表下周 * @returns {string}返回yyyy-mm-dd格式字符串 */ getDateOfWeek: function (type, dates) { var now = new Date(); var nowTime = now.getTime(); var day = now.getDay(); var longTime = 24 * 60 * 60 * 1000; var n = longTime * 7 * (dates || 0); if (type == "s") { var dd = nowTime - (day - 1) * longTime + n; }; if (type == "e") { var dd = nowTime + (7 - day) * longTime + n; }; dd = new Date(dd); return this.formatDateOrToday(dd); },
9,获取本月,上月,下月的起始和结束时间
/** * 获取本月,上月,下月的起始和结束时间 * @param {string} type "s"代表开始,"e"代表结束 * @param {int} dates 不传或0代表本月,-1代表上月,1代表下月 * @returns {string}返回yyyy-mm-dd格式字符串 */ getDateOfMonth: function (type, months) { var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1; if (!!months && Math.abs(months) > 12) { months = months % 12; }; if (!!months) { if (month + months > 12) { year++; month = (month + months) % 12; } else if (month + months < 1) { year--; month = 12 + month + months; } else { month = month + months; }; }; month = month < 10 ? "0" + month : month; var date = d.getDate(); var firstday = year + "-" + month + "-" + "01"; var lastday = ""; if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") { lastday = year + "-" + month + "-" + 31; } else if (month == "02") { if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) { lastday = year + "-" + month + "-" + 29; } else { lastday = year + "-" + month + "-" + 28; }; } else { lastday = year + "-" + month + "-" + 30; }; var day = ""; if (type == "s") { day = firstday; } else { day = lastday; }; return day; },
10,根据日期获取日期所在周(周一和周日)
/** * 根据日期获取日期所在周(周一和周日) * @param {int} y 年份 * @param {int} m 月 * @param {int} d 日 * @returns {obj}包含beginDate和endDate的对象 */ getWeekByDay: function (y, m, d) { var date = new Date(y, m, d); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDay() || 7; var date = date.getDate(); var begin = new Date(year, month, date - day + 1); var end = new Date(year, month, date - day + 7); return { beginDate: this.formatDateOrToday(begin), endDate: this.formatDateOrToday(end) } },
11, 获取本年的起始和结束时间
/** * 获取本年的起始和结束时间 * @param {string} type "s"代表开始,"e"代表结束 * @returns {string}返回yyyy-mm-dd格式字符串 */ getDateOfYear: function (type) { var now = new Date(); var year = now.getFullYear(); if (type == "s") { var dd = new Date(year, 0, 1); } if (type == "e") { var dd = new Date(year, 11, 31); } return this.formatDateOrToday(dd); },
12,判断开始日期是否大于结束日期
/** * 判断开始日期是否大于结束日期 * @param {any} startTime string "2013-01-12" * @param {any} endTime string "2012-01-12" * @returns * false表示存在开始日期不能大于结束日期; * true表示不存在 */ endDateMaxStartDate: function (startDate, endDate) { if (startDate.length > 0 && endDate.length > 0) { var startTmp = startDate.split("-"); var endTmp = endDate.split("-"); var sd = new Date(startTmp[0], startTmp[1], startTmp[2]); var ed = new Date(endTmp[0], endTmp[1], endTmp[2]); if (sd.getTime() > ed.getTime()) { return false; } } return true; },
13,判断开始日期时间是否大于结束日期时间
/** * 判断开始日期时间是否大于结束日期时间 * * @param {any} startTime string "2013-01-12 20:12:12" * @param {any} endTime string "2013-01-12 18:20:00" * @returns * false表示存在开始日期大于结束日期的情况; * true表示不存在。 * 知识点: * Date.parse(endTime) 得到日期的long时间戳 * new Date(Date.parse(endTime)); 转换成:Sat Jan 12 2013 18:20:00 GMT+0800 (中国标准时间) */ endTimeMaxStartTime: function (startTime, endTime) { startTime = startTime.replace("-", "/"); endTime = endTime.replace("-", "/"); var endTime1 = new Date(Date.parse(endTime)); var startTime1 = new Date(Date.parse(startTime)); if (startTime1 > endTime1) { return false; } return true; }