JS常用工具函数(持续记录)

1、设置获取cookie

//方式1
//设置cookie
function SetCookie(name, value)//两个参数,一个是cookie的名字,一个是值
{
    var Days = 30; //此 cookie 将被保存 30 天
    var exp = new Date();    //new Date("December 31, 9998");
    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
//读取cookies
function GetCookie(name)
{
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null) return unescape(arr[2]); return null;

}
//删除cookies
function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null)
        document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

2、时间类型、字符串 互转

js 时间转字符串
Date.prototype.Format = function(fmt) {
    // author: meizz
    var o = {
        "M+" : this.getMonth() + 1, // 月份
        "d+" : this.getDate(), // 日
        "h+" : this.getHours(), // 小时
        "m+" : this.getMinutes(), // 分
        "s+" : this.getSeconds(), // 秒
        "q+" : Math.floor((this.getMonth() + 3) / 3), // 季度
        "S" : this.getMilliseconds()
    // 毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
                .substr(4 - RegExp.$1.length));
    for ( var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
                    : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};

JS 字符串转时间
/*
 * 字符串和date 转换
 */
str2date = function(c_date) {
    if (!c_date)
        return "";
    var tempArray = c_date.split("-");
    if (tempArray.length != 3) {
        alert("你输入的日期格式不正确,正确的格式:yyyy-MM-dd hh:mm:ss");
        return 0;
    }
    var dateArr = c_date.split(" ");
    var date = null;
    if (dateArr.length == 2) {
        var yymmdd = dateArr[0].split("-");
        var hhmmss = dateArr[1].split(":");
        date = new Date(yymmdd[0], yymmdd[1] - 1, yymmdd[2], hhmmss[0], hhmmss[1], hhmmss[2]);
    } else {
        date = new Date(tempArray[0], tempArray[1] - 1, tempArray[2], 00, 00, 01);
    }
    return date;
};

3、银行卡号四位补空格

//银行卡号按4位一空格显示(     使用 onkeyup(setBankNoStyle(this.value))   )
function setBankNoStyle(BankNo) {
    var lKeyCode = (navigator.appname == "Netscape") ? event.which : event.keyCode;
    if (lKeyCode != 8) {
        if (BankNo.value == "") return;
        var account = new String(BankNo.value).replace(/\s/g, ‘‘);
        var strTemp = "";
        for (var i = 0; i < account.length; i++) {
            if (!isNaN(account[i])) {
                strTemp = strTemp + account[i];
            }
        }
        var strValue = strTemp.substr(0, 19);
        strTemp = "";
        for (var j = 0; j < strValue.length; j++) {
            if ((j + 1) % 4 == 0) {
                strTemp = strTemp + strValue[j] + " ";
            } else {
                strTemp = strTemp + strValue[j];
            }
        }
        $(BankNo).val(strTemp);
    }

}

4、文字内容部分选中

//o是当前对象,例如文本域对象
    //b是起始位置(begin),e是终点位置(end)
    function textSelect(o, b, e) {
        var b = parseInt(b, 10),
            e = parseInt(e, 10);
        var l = o.value.length;
        if (l) {
            //如果非数值,则表示从起始位置选择到结束位置
            if (!b) {
                b = 0;
            }
            if (!e) {
                e = l;
            }
            //如果值超过长度,则就是当前对象值的长度
            if (b > l) {
                b = l;
            }
            if (e > l) {
                e = l;
            }
            //如果为负值,则与长度值相加
            if (b < 0) {
                b = l + b;
            }
            if (e < 0) {
                e = l + e;
            }
            if (o.createTextRange) { //IE浏览器
                var range = o.createTextRange();
                range.moveStart("character", -l);
                range.moveEnd("character", -l);
                range.moveStart("character", b);
                range.moveEnd("character", e);
                range.select();
            } else {
                o.setSelectionRange(b, e);
                o.focus();
            }
        }
    };
    //var txt = document.getElementById(‘txt‘);
    //textSelect(txt,‘a‘,11);

5、人民币数字转大写

/*
《正确填写票据和结算凭证的基本规定》
银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁、肆(肆)、伍(伍)、陆(陆)、柒、捌、玖、拾、佰、仟、万(万)、亿、元、角、分、零、整(正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)填写,不得自造简化字。如果金额数字书写中使用繁体字,如贰、陆、亿、万、圆的,也应受理。 

一、中文大写金额数字到"元"为止的,在"元"之后,应写"整"(或"正")字,在"角"之后,可以不写"整"(或"正")字。大写金额数字有"分"的,"分"后面不写"整"(或"正")字。 

二、中文大写金额数字前应标明"人民币"字样,大写金额数字有"分"的,"分"后面不写"整"(或"正")字。 

三、中文大写金额数字前应标明"人民币"字样,大写金额数字应紧接"人民币"字样填写,不得留有空白。大写金额数字前未印"人民币"字样的,应加填"人民币"三字。在票据和结算凭证大写金额栏内不得预印固定的"仟、佰、拾、万、仟、佰、拾、元、角、分"字样。 

四、阿拉伯数字小写金额数字中有"0"时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下: 

1·阿拉伯数字中间有"0"时,中文大写要写"零"字,如¥1409.50,应写成人民币陆壹仟肆佰零玖元伍角。
2·阿拉伯数字中间连续有几个"0"时,中文大写金额中间可以只写一个"零"字,如¥6007.14,应写成人民币陆仟零柒元壹角肆分。
3·阿拉伯金额数字万位和元位是"0",或者数字中间连续有几个"0",万位、元位也是"0",但千位、角位不是"0"时,中文大写金额中可以只写一个零字,也可以不写"零"字。如¥1680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分,又如¥107000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。
4·阿拉伯金额数字角位是"0",而分位不是"0"时,中文大写金额"元"后面应写"零"字。如¥16409.02,应写成人民币壹万陆仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元零肆分。
五、阿拉伯小写金额数字前面,均应填写人民币符号"¥"。阿拉伯小写金额数字要认真填写,不得连写分辨不清。
六、票据的出票日期必须使用中文大写。为防止变造票据的出票日期,在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加"零";日为拾壹至拾玖的,应在其前加"壹"。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。 

七、票据出票日期使用小写填写的,银行不予受理。大写日期未按要求规范填写的,银行可予受理,但由此造成损失的,由出票人自行承担。
*/
//数字转人民币大写
function ConvertChineseMoney(money) {
    var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //汉字的数字
    var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
    var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
    var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
    var cnInteger = "整"; //整数金额时后面跟的字符
    var cnIntLast = "元"; //整型完以后的单位
    var maxNum = 999999999999999.9999; //最大处理的数字

    var IntegerNum; //金额整数部分
    var DecimalNum; //金额小数部分
    var ChineseStr = ""; //输出的中文金额字符串
    var parts; //分离金额后用的数组,预定义

    if (money == "") {
        return "";
    }

    money = parseFloat(money);
    if (money >= maxNum) {
        $.alert(‘超出最大处理数字‘);
        return "";
    }
    if (money == 0) {
        ChineseStr = cnNums[0] + cnIntLast + cnInteger;
        return ChineseStr;
    }
    money = money.toString(); //转换为字符串
    if (money.indexOf(".") == -1) {
        IntegerNum = money;
        DecimalNum = ‘‘;
    } else {
        parts = money.split(".");
        IntegerNum = parts[0];
        DecimalNum = parts[1].substr(0, 4);
    }
    if (parseInt(IntegerNum, 10) > 0) {//获取整型部分转换
        zeroCount = 0;
        IntLen = IntegerNum.length;
        for (i = 0; i < IntLen; i++) {
            n = IntegerNum.substr(i, 1);
            p = IntLen - i - 1;
            q = p / 4;
            m = p % 4;
            if (n == "0") {
                zeroCount++;
            } else {
                if (zeroCount > 0) {
                    ChineseStr += cnNums[0];
                }
                zeroCount = 0; //归零
                ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
            }
            if (m == 0 && zeroCount < 4) {
                ChineseStr += cnIntUnits[q];
            }
        }
        ChineseStr += cnIntLast;
        //整型部分处理完毕
    }
    if (DecimalNum != ‘‘) {//小数部分
        decLen = DecimalNum.length;
        for (i = 0; i < decLen; i++) {
            n = DecimalNum.substr(i, 1);
            if (n != ‘0‘) {
                ChineseStr += cnNums[Number(n)] + cnDecUnits[i];
            }
        }
    }
    if (ChineseStr == ‘‘) {
        ChineseStr += cnNums[0] + cnIntLast + cnInteger;
    }
    else if (DecimalNum == ‘‘) {
        ChineseStr += cnInteger;
    }
    //如果元位刚好为零,后面需要补零
    //if (ChineseStr.indexOf(‘拾元‘) >= 0) {
    //    if (ChineseStr.indexOf(‘分‘) >= 0 || ChineseStr.indexOf(‘角‘) >= 0) { //处理只到10元,又刚好有角或分的情况
    //        ChineseStr = ChineseStr.substr(0, ChineseStr.indexOf(‘元‘) + 1) + ‘零‘ + ChineseStr.substr(ChineseStr.indexOf(‘元‘) + 1);
    //    }
    //} else
    if (ChineseStr.indexOf(‘分‘) >= 0 && ChineseStr.indexOf(‘角‘) < 0) {//处理没有角有分的情况
        if (ChineseStr.indexOf(‘元‘) > 0) {
            ChineseStr = ChineseStr.substr(0, ChineseStr.indexOf(‘元‘)+1) + ‘零‘ + ChineseStr.substr(ChineseStr.indexOf(‘元‘) + 1);
        }
    }
    return ChineseStr;
}
时间: 2024-10-11 01:53:04

JS常用工具函数(持续记录)的相关文章

js常用工具函数大全

项目中经常会用到的js工具函数,待更新: 小于10补0,常用于日期月份补0: // 小于10补0 function format(n) { return n.toString().replace(/^(\d)$/, '0$1'); } 千分位显示,常用于价格显示: // 千分位 function toThousands(num) { return parseFloat(num).toFixed(2).replace(/(\d{1,3})(?=(\d{3})+(?:\.))/g, "$1,&quo

JS常用工具函数

/** * Created by gaojun-pd on 2016/10/27. */ var Util = { /** * 1.判断非空 * 2.获取字符串真实长度 汉字算两位 * 3.判断参数类型 * 4.日期格式化 * 5.通过key获取url中的参数值 * 6.设置cookie值 * 7.获取cookie值 * 8.删除cookie * 9.HTML编码 * 10.HTML解码 * 11.光标停在文字的后面,文本框获得焦点时调用 * 12.生成一个新的GUID */ /** * 判断非

Node.js 常用工具

Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数. JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.JavaScript 没有 提供对象继承的语言级别特性,而是通过原型复制来实现的. 在这里我们只介绍util.inherits

Node.js 常用工具util包

Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.isDate(obj); util.inherits(constr,super); util.isRegExp(/some regexp/); util.isArray(obj); util.inspect(obj); util.inherits util.inherits(constructor, s

part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)

循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部分.(1).初始化语句(init_statements):在循环开始前执行,有一条或多条语句,用于完成一些起初始化工作.(2).循环条件(test_expression):一个布尔表达式,决定是否执行循环体.(3).循环体(body_statements):循环的主体,根据循环条件是否允许,这个代码

js常用工具类.

一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * 使用方式一: * var now = new Date(); * var nowStr = now.dateFormat("yyyy-MM-dd hh:mm:ss"); * 使用方式二: * new Date().dateFormat("yyyy年MM月dd日");

numpy 常用工具函数 —— np.bincount/np.average

numpy 常用工具函数 -- np.bincount/np.average numpy 常用api(一) numpy 常用api(二) 一个函数提供 random_state 的关键字参数(keyword parameter):是为了结果的可再现性(reoccurrence)或叫可重复性. 1. np.bincount():统计次数 接口为: numpy.bincount(x, weights=None, minlength=None) 1 尤其适用于计算数据集的标签列(y_train)的分布

python 迭代器 itertools模块中常用工具函数

迭代器 itertools模块中常用工具函数,提供了接近二十个迭代器工具函数. 原文地址:https://www.cnblogs.com/bcyczhhb/p/11809842.html

js常用工具库XCLJsTool v1.0发布

最近有空,整了一个js的工具库,还没有正式用于项目中,自己也没有时间写测试用例,想了一下,还是贴出来给大家看看,如果有问题,请留言,非常感谢!项目我放在了github上面,会经常更新的,过段时间会发布一版! /** * 欢迎使用本程序,您可以任意修改.复制.分享本程序所有代码,只需要保留本注释即可,谢谢! * 项目地址:<span style="color:#ff0000;">https://github.com/xucongli1989/XCLJsTool</spa