Fork me on GitHub

常用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&param2=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');
        });
    });

 

posted @ 2018-08-31 10:35  秋夜雨巷  阅读(203)  评论(0编辑  收藏  举报