常用JS代码
字符串
包含字符串
indexOf()!=-1
if(Ids.indexOf(node.id)!=-1){ //包含 node.check = true; //处理 }
判断是否为空
/*方法一: !*/ var content=$("content").val(); if(!content){ //相当于判断content=""、content=null、content = undefined、content=0 alert("请输出内容!"); return; } /*方法二:if,toString()方法是为了转换为字符串,如果是数值类型等没有.trim()方法*/ function isEmpty(value){ if(value == undefined || value == null || value.toString().trim() == ""){ return ""; }else{ return value; } }
返回正确数据
/*返回正确数据,一定要用===,不然0==''会返回true。*/ function getRightData(data){ if(data === null || data === undefined || data === 'undefined' || data === 'null' || data === ''){ return '暂无'; }else{ return data; } }
计算百分比
计算百分比,并保留两位小数。
var percent = Math.round(num1/num2 * 10000) / 100 + '%';
注意:
Math.round(num)表示对num进行四舍五入操作,只保留整数位,所以要保留两位小数一定要*10000把小数部分变为整数部分。
数组
数组大小
arr.length;
获取随机数
/** * 生成从minNum到maxNum的随机数 * @param minNum 最小值,若只有一个参数则这个值为上限 * @param maxNum 最大值 * @returns {number} */ function randomNum(minNum,maxNum){ switch(arguments.length){ //参数长度 case 1: //当只有一个参数时,取值范围为1-指定参数值 return parseInt(Math.random()*minNum+1,10); //10为十进制 break; case 2: //当参数值为两个时,取值范围为minNum ~ maxNum return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); break; default: //否则返回o return 0; break; } }
正则表达式
/正则表达式主体/修饰符(可选)
正则表达式主体:可以为字符串或者正则表达式
修饰符: i表示对大小写不敏感,g表示全局匹配(查找所有匹配而非在找到第一个匹配后停止)
str.replace(/,/ig,','); //替换中文,为英文逗号, str.replace(/\s+/ig,''); //替换所有空格,一定要用\s千万不能打空格,否则只能替换中文全角空格或者英文半角空格
密码验证
//验证密码: 密码由8到15位的字母、数字、特殊字符三种类型组成 function checkPWD() { var password = $('#password').val(); var pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,15}'); if (!pwdRegex.test(password)) { layer.msg("您的密码复杂度太低(密码由8-15位字符组成且必须包含字母、数字、特殊字符),请重新设置!"); $('#password').val(''); } }
统一信用代码验证
/*统一信用代码验证: 位数验证&校验位验证*/ function checkSocialCreditCode(code) { //18位校验及大写字母数字校验 var patrn = /^[0-9A-Z]+$/; if ((code.length != 18) || (patrn.test(code) == false)) { return false; }else { //根据每一位的数字进行加权计算,最后得出最后一位校验位 var Auncode;//统一社会信用代码的每一个值 var Ancodevalue;//统一社会信用代码每一个值的权重 var total = 0; var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子 var str = '0123456789ABCDEFGHJKLMNPQRTUWXY'; //不用I、O、S、V、Z for (var i = 0; i < code.length - 1; i++) { Ancode = code.substring(i, i + 1); Ancodevalue = str.indexOf(Ancode); total = total + Ancodevalue * weightedfactors[i]; //权重与加权因子相乘之和 } //得出校验位下标,如果是31则返回下标0 var logiccheckindex = 31 - total % 31; if (logiccheckindex == 31) { logiccheckindex = 0; } //获得校验位数组 var CheckStr = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y"; var Array_Check = CheckStr.split(','); var logiccheckcode = Array_Check[logiccheckindex]; // //截取最后一位验证位和计算出来的验证树进行核对 var checkcode = code.substring(17, 18); if (logiccheckcode != checkcode) { return false; // alert("不是有效的统一社会信用编码!"); } else { return true } } }
时间戳
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑毫秒。
获取时间戳
时间转时间戳:javascript获得时间戳的方法有四种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳
1.var timestamp1 = Date.parse(new Date()); // 结果:1477808630000 不推荐这种办法,毫秒级别的数值被转化为000
console.log(timestamp1);
2.var timestamp2 = (new Date()).valueOf(); // 结果:1477808630404 通过valueOf()
函数返回指定对象的原始值获得准确的时间戳值
console.log(timestamp2);
3.var timestamp3 = new Date().getTime(); // 结果:1477808630404 ,通过原型方法直接获得当前时间的毫秒值,准确
console.log(timestamp3);
4.var timetamp4 = Number(new Date()) ; //结果:1477808630404 ,将时间转化为一个number类型的数值,即时间戳
console.log(timetamp4);
时间转时间戳
var date = new Date("yyyy-MM-dd HH:mm:ss"); date.valueOf(); //方法一: 13位精确到毫秒 date.getTime(); //方法二: 13位精确到毫秒 //方法三: 13位,精确到秒,毫秒用000替代, //注意:获取到的时间戳除以1000就可获得Unix时间戳 Date.parse("yyyy-MM-dd HH:mm:ss")/1000;
时间戳转时间
查看mysql数据库时间戳格式.,数据库时间戳为10位,单位为秒s
查看java代码时间戳格式,java时间戳为13位,单位为ms
//方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime();
查看js时间戳格式,js时间戳为13位,格式为ms
当前端处理后端的直接发过来的时间戳时,要*1000转换为毫秒才可以
var timestamp = new Date(1472048779952); //直接用 new Date(时间戳) 格式转化获得当前时间,如果数据库里的时间戳是10位,这里要*1000
console.log(timestamp);
console.log(timestamp.toLocaleDateString().replace(/\//g, "-") + " " + timestamp.toTimeString().substr(0, 8)); //再利用拼接正则等手段转化为yyyy-MM-dd hh:mm:ss 格式
//将时间戳转换为时间 function unixToDateTime(sql_timestamp){ //后端传过来的时间戳为10位,单位为秒 if(sql_timestamp==null||sql_timestamp==undefined||sql_timestamp==""){ return ""; } var timestamp = new Date(sql_timestamp*1000); //将秒转为毫秒 return timestamp.toLocaleDateString().replace(/\//g, "-") + " " + timestamp.toTimeString().substr(0, 8); }
时间戳转时间方法二:
function add0(m){return m<10?'0'+m:m } function timestamp2dateformat(timestamp) { var time = new Date(timestamp); var y = time.getFullYear(); var m = time.getMonth()+1; var d = time.getDate(); var h = time.getHours(); var mm = time.getMinutes(); var s = time.getSeconds(); return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s); }
时间差-分钟
/** * 当前时间和指定时间经历的分钟数 * @param dt 时间 格式: 2022/11/15 15:26:13 * @returns 经历的分钟数(带小数) */ function timediff_min(dt){ var now_time = new Date().getTime(); var before_time = new Date(dt).getTime(); return Math.abs(now_time - before_time )/(60*1000); }
Cookie
获取cookie
//获取cookie var cookie = document.cookie; //打印cookie console.info(cookie);
页面之间传参
获取URL参数
var Request = new function () { //获取当前url的参数,例如?param1=val1¶m2=val2 this.search = window.location.search; //Request新增QueryString 属性 this.QueryString = new Array(); //substr去掉开头的?、split把参数分割成以'key=val'为格式的数组 var KVsarray = this.search.substr(1, this.search.length).split("&") //遍历键值对数组 for (var i = 0; i < KVsarray.length; i++) { var kvarr = KVsarray[i].split("="); //再把键值对元素分割成key和val放在kvarr数组的第一和第二个元素中 this.QueryString[kvarr[0]] = kvarr[1]; //key作为键,val作为值放入QueryString中 } }
使用
$(function (){ id = Request.QueryString['id']; //获取页面传过来的id参数(url传参) });
iframe元素获取
外部获取iframe内部元素
js : window.frames['frame'].document.getElementById("imglist"); //frame为iframe的name值/ID值。 jq : $(window.frames['frame'].document.getElementById("imglist")); //frame为iframe的name值/ID值。
内部获取iframe外部元素
js: window.parent.document.getElementById("confirmq");
jq: $("#confirmq",parent.document);
获取表单内容提交
转成json
var formObject = {}; var formArray = $("#form1").serializeArray(); $.each(formArray, function (i, item) { formObject[item.name] = item.value; }); var jsonBody= JSON.stringify(formObject);
表单序列化提交
var postBody = $("#form").serialize();
显示动态时间
//动态时间 function RunDateTime(idEle){ var time = new Date();//获取系统当前时间 var year = time.getFullYear(); var month = time.getMonth()+1; var date= time.getDate();//系统时间月份中的日 var day = time.getDay();//系统时间中的星期值 var weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; var week = weeks[day];//显示为星期几 var hour = time.getHours(); var minutes = time.getMinutes(); var seconds = time.getSeconds(); console.log(seconds); if(month<10){ month = "0"+month; } if(date<10){ date = "0"+date; } if(hour<10){ hour = "0"+hour; } if(minutes<10){ minutes = "0"+minutes; } if(seconds<10){ seconds = "0"+seconds; } //var newDate = year+"年"+month+"月"+date+"日"+week+hour+":"+minutes+":"+seconds; document.getElementById(idEle).innerHTML = year+"年"+month+"月"+date+"日"+week+hour+":"+minutes+":"+seconds; } /*循环执行*/ function loopTime() { RunDateTime("rundateTime"); } /*加括号立即执行,且执行一次;不加括号,1秒后执行,且循环执行.*/ setInterval(loopTime,1000);
按钮选中效果
$(document).ready(function() { // 监听 .container_main 下的 div 的点击事件 $('.container_main>.activeble_btn').on('click', function() { // 移除所有的 .button_active 类 $('.activeble_btn').removeClass('button_active').addClass('button_noactive'); // 为被点击的 div 的子元素添加 button_active 类 $(this).addClass('button_active').removeClass('button_noactive'); }); });