Last active
May 24, 2019 01:40
-
-
Save Visionchen/a7dfff5d24d4f6638f9668d85ae23c4e to your computer and use it in GitHub Desktop.
啦啦啦...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ### 递归拷贝 | |
| ```javascript | |
| var clone = function(obj) { | |
| var newObj = obj.constructor === Array ? [] : {}; | |
| for( var key in obj) { | |
| newObj[key] = typeof obj[key] === 'Object' ? clone(obj[key]) : obj[key]; | |
| } | |
| return newObj; | |
| } | |
| ``` | |
| ### 获取url?后面的参数值 | |
| ```JavaScript | |
| function getParams(name) { | |
| var params = location.search.substring(1).split('&'); | |
| for(var i in params) { | |
| var ps = params[i].split('='); | |
| if(ps[0] === name) { | |
| return ps[1]; | |
| } | |
| } | |
| } | |
| export function getUrlParam(name) { | |
| var _s = window.location.search; | |
| if (!_s) return ''; | |
| _s = _s.substr(1); | |
| var _arr = _s.split('&'); | |
| var _t = null; | |
| for (var i = 0; i < _arr.length; i++) { | |
| _t = _arr[i].split('='); | |
| if (_t[0] == name) { | |
| return _t.length > 1 ? _t[1] : ''; | |
| } | |
| } | |
| return ''; | |
| } | |
| export function getUrlKey(name) { | |
| return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null; | |
| } | |
| ``` | |
| ### 利用json对象转化为字符串的方法 | |
| ```javascript | |
| var clone2 = function(v) { | |
| return ( | |
| JSON.parse(JSON.stringify(v)) | |
| ); | |
| } | |
| ``` | |
| ### 毫秒转换为年月日时分秒 | |
| ```javascript | |
| function timestampToTime(timestamp) { | |
| var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 | |
| Y = date.getFullYear() + '-'; | |
| M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; | |
| D = change(date.getDate()) + ' '; | |
| h = change(date.getHours()) + ':'; | |
| m = change(date.getMinutes()) + ':'; | |
| s = change(date.getSeconds()); | |
| return Y + M + D + h + m + s; | |
| } | |
| function change(t) { | |
| if (t < 10) { | |
| return "0" + t; | |
| } else { | |
| return t; | |
| } | |
| } | |
| ``` | |
| ### 模糊查询(表格) | |
| ```javascript | |
| $("#filterName").keyup(function() { | |
| $("table tbody tr").hide(); | |
| $(".inv_neirong").filter(":contains('" + ($(this).val()) + "')").parent().show(); | |
| }) | |
| ``` | |
| ### 获取日期之间的日期数组 | |
| ```javascript | |
| Date.prototype.format = function() { | |
| var s = ''; | |
| var mouth = (this.getMonth() + 1) >= 10 ? (this.getMonth() + 1) : ('0' + (this.getMonth() + 1)); | |
| var day = this.getDate() >= 10 ? this.getDate() : ('0' + this.getDate()); | |
| s += this.getFullYear() + '-'; // 获取年份。 | |
| s += mouth + "-"; // 获取月份。 | |
| s += day; // 获取日。 | |
| return(s); // 返回日期。 | |
| }; | |
| function getAll(begin, end) { | |
| var dateArr=[]; | |
| var ab = begin.split("-"); | |
| var ae = end.split("-"); | |
| var db = new Date(); | |
| db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]); | |
| var de = new Date(); | |
| de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]); | |
| var unixDb = db.getTime(); | |
| var unixDe = de.getTime(); | |
| for(var k = unixDb; k <= unixDe;) { | |
| dateArr.push((new Date(parseInt(k))).format()); | |
| k = k + 24 * 60 * 60 * 1000; | |
| } | |
| console.log(dateArr); | |
| } | |
| ``` | |
| ### URL ?后的查询参数 | |
| ```javascript | |
| function query(name) { | |
| var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); | |
| var r = decodeURI(window.location.search).substr(1).match(reg); | |
| if(r != null) return unescape(r[2]); | |
| }; | |
| ``` | |
| ### 数组去重 | |
| ```javascript | |
| function unique(arr){ | |
| var res =[]; | |
| var json = {}; | |
| for(var i=0;i<arr.length;i++){ | |
| if(!json[arr[i]]){ | |
| res.push(arr[i]); | |
| json[arr[i]] = 1; | |
| } | |
| } | |
| return res; | |
| } | |
| 或者 | |
| Array.from(new Set(arr)) | |
| ``` | |
| ### 去除左右两端的空格 | |
| ```javascript | |
| function trim(str) { | |
| return str.replace(/(^\s*)|(\s*$)/g, ""); | |
| } | |
| ``` | |
| ### 数字输入框 | |
| ```javascript | |
| function clearNoNum(obj) { | |
| obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数 | |
| if(obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 | |
| obj.value = parseFloat(obj.value); | |
| } | |
| if(obj.value == 'NaN') { | |
| obj.value = 1; | |
| } | |
| } | |
| ``` | |
| ### 冒泡排序 | |
| ```javascript | |
| function bubbleSort(arr) { | |
| var len = arr.length; | |
| for (var i = 0; i < len; i++) { | |
| for (var j = 0; j < len - 1 - i; j++) { | |
| if (arr[j] > arr[j+1]) { //相邻元素两两对比 | |
| var temp = arr[j+1]; //元素交换 | |
| arr[j+1] = arr[j]; | |
| arr[j] = temp; | |
| } | |
| } | |
| } | |
| return arr; | |
| } | |
| ``` | |
| ### 生成随机颜色值 | |
| ```javascript | |
| function getRandomColor () { | |
| const rgb = [] | |
| for (let i = 0 ; i < 3; ++i){ | |
| let color = Math.floor(Math.random() * 256).toString(16) | |
| color = color.length == 1 ? '0' + color : color | |
| rgb.push(color) | |
| } | |
| return '#' + rgb.join('') | |
| } | |
| ``` | |
| ### 隐式转换 | |
| ```javascript | |
| let stringNum = "123"; // String - 0 | |
| stringNum - 0 = 123; // Number | |
| let num = 123; // Number | |
| num + "" = "123"; //String | |
| ``` | |
| ### 正则表达式验证 | |
| ```javascript | |
| /*是否带有小数*/ | |
| function isDecimal(strValue ) { | |
| var objRegExp= /^\d+\.\d+$/; | |
| return objRegExp.test(strValue); | |
| } | |
| /*校验是否中文名称组成 */ | |
| function ischina(str) { | |
| var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/ | |
| return reg.test(str); /*进行验证*/ | |
| } | |
| /*校验是否全由8位数字组成 */ | |
| function isStudentNo(str) { | |
| var reg=/^[0-9]{8}$/; /*定义验证表达式*/ | |
| return reg.test(str); /*进行验证*/ | |
| } | |
| /*校验电话码格式 */ | |
| function isTelCode(str) { | |
| var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; | |
| return reg.test(str); | |
| } | |
| /*校验邮件地址是否合法 */ | |
| function IsEmail(str) { | |
| var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/; | |
| return reg.test(str); | |
| } | |
| ``` | |
| ### 倒计时 | |
| ```javascript | |
| function leftTimer(enddate) { | |
| var leftTime = (new Date(enddate)) - new Date(); //计算剩余的毫秒数 | |
| var days = parseInt(leftTime / 1000 / 60 / 60 / 24, 10); //计算剩余的天数 | |
| var hours = parseInt(leftTime / 1000 / 60 / 60 % 24, 10); //计算剩余的小时 | |
| var minutes = parseInt(leftTime / 1000 / 60 % 60, 10); //计算剩余的分钟 | |
| //var seconds = parseInt(leftTime / 1000 % 60, 10); //计算剩余的秒数 | |
| days = checkTime(days); | |
| hours = checkTime(hours); | |
| minutes = checkTime(minutes); | |
| // seconds = checkTime(seconds); | |
| if (days >= 0 || hours >= 0 || minutes >= 0 || seconds >= 0) | |
| that.setData({ | |
| time_str: "剩余时间" + days + "天" + hours + "小时" + minutes + "分" ,//+ seconds + "秒" | |
| }) | |
| // && seconds <= 0 | |
| if (days <= 0 && hours <= 0 && minutes <= 0 ) { | |
| clearInterval(_ordertimer); | |
| _ordertimer = null; | |
| that.setData({ | |
| time_over: true, | |
| is_close: true, | |
| is_open: false, | |
| }) | |
| } | |
| } | |
| function checkTime(i) { //将0-9的数字前面加上0,例1变为01 | |
| if (i < 10) { | |
| i = "0" + i; | |
| } | |
| return i; | |
| } | |
| function go(v) { | |
| clearInterval(_ordertimer); | |
| var date1 = new Date(), | |
| data2 = new Date(v); | |
| if (data2 < date1) { | |
| that.setData({ | |
| time_over: true, | |
| is_close:true, | |
| is_open:false, | |
| }) | |
| return; //设置的时间小于现在时间退出 | |
| } | |
| _ordertimer = setInterval(function() { | |
| leftTimer(data2) | |
| }, 1000); | |
| } | |
| go('2018/12/31 00:00:00'); | |
| ``` | |
| ### 字符串出现次数做多的排序 | |
| ```javascript | |
| function sortStringByCount(argc){ | |
| if (typeof(argc) !== "string" || argc.constructor !== String) {//constructor 属性返回所有 JavaScript 变量的构造函数 | |
| return argc; | |
| }else{ | |
| dealtArgc = argc.split('').sort().join('');//将字符串分割输出数组,然后对数组排序,再转换成字符串 | |
| newStr = dealtArgc.match(/(.)\1{0,}/g).sort(function(a,b){//match输出的是数组形式,然后用sort排序,最后用join转成字符串 | |
| return b.length - a.length | |
| }).join(''); | |
| return newStr; | |
| } | |
| } | |
| console.log(sortStringByCount('asdasdasdasdasdasdfsdgdfgdfgdfgerter')); | |
| ``` | |
| ### cookie | |
| ```javascript | |
| function setCookie(c_name,value,expiredays) | |
| { | |
| var exdate=new Date() | |
| exdate.setDate(exdate.getDate()+expiredays) | |
| document.cookie=c_name+ "=" +escape(value)+ | |
| ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) | |
| } | |
| //取回cookie | |
| function getCookie(c_name) | |
| { | |
| if (document.cookie.length>0) | |
| { | |
| c_start=document.cookie.indexOf(c_name + "=") | |
| if (c_start!=-1) | |
| { | |
| c_start=c_start + c_name.length+1 | |
| c_end=document.cookie.indexOf(";",c_start) | |
| if (c_end==-1) c_end=document.cookie.length | |
| return unescape(document.cookie.substring(c_start,c_end)) | |
| } | |
| } | |
| return "" | |
| } | |
| ``` | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment