• js工具类


      1 /**************************   
      2  **********************************************************************************************/
      3 
      4 /**************************************************************
      5  获取文本框的值并转换成Float类型返回
      6 **************************************************************/
      7 function $Float(el) {
      8     return Util.parseFloat($F(el));
      9 }
     10 
     11 /**************************************************************
     12  获取文本框的值并转换成Integer类型返回
     13 **************************************************************/
     14 function $Integer(el) {
     15     return Util.parseInteger($F(el));
     16 }
     17 
     18 /**************************************************************
     19  设置文本框的值
     20 **************************************************************/
     21 function $Set(el, value) {
     22     $(el).value = value;
     23 }
     24 
     25 /**************************************************************
     26  工具类Util
     27 **************************************************************/
     28 var Util = {};
     29 
     30 /**************************************************************
     31  格式化字符串,使用方式类似java中的String.format()方法
     32 **************************************************************/
     33 Util.format = function(format) {
     34     var args = [];
     35     for(var i = 1; i < arguments.length; i++) {
     36         args.push(arguments[i]);
     37     }
     38 
     39     return format.replace(/{(d+)}/g, function(m, i) {
     40         return args[i];
     41     });
     42 }
     43 
     44 /**************************************************************
     45 判断字符串是否为空
     46 **************************************************************/
     47 Util.strIsEmpty = function(str) {
     48     return str == null || !str || typeof str == undefined || str == '';
     49 }
     50 
     51 /**************************************************************
     52 将传入值转换成整数
     53 **************************************************************/
     54 Util.parseInteger = function(v) {
     55     if(typeof v == 'number') {
     56         return v;
     57     } else if(typeof v == 'string') {
     58         var ret = parseInt(v);
     59 
     60         if(isNaN(ret) || !isFinite(ret)) {
     61             return 0;
     62         }
     63 
     64         return ret;
     65     } else {
     66         return 0;
     67     }
     68 }
     69 
     70 /**************************************************************
     71 将传入值转换成小数
     72 **************************************************************/
     73 Util.parseFloat = function(v) {
     74     if(typeof v == 'number') {
     75         return v;
     76     } else if(typeof v == 'string') {
     77         var ret = parseFloat(v);
     78         if(isNaN(ret) || !isFinite(ret)) {
     79             return 0;
     80         }
     81 
     82         return ret;
     83     } else {
     84         return 0;
     85     }
     86 }
     87 
     88 /**************************************************************
     89 将传入值转换成小数,传入值可以是以逗号(,)分隔的数字,此方法将会过滤掉(,)
     90 **************************************************************/
     91 Util.parseDotFloat = function(v) {
     92     if(typeof v == 'number') {
     93         return v;
     94     } else if(typeof v == 'string') {
     95         v = v.replace(/[^d|.]/g, '');
     96         v = parseFloat(v);
     97 
     98         if(isNan(v) || !isFinite(v)) {
     99             return 0
    100         }
    101         return ret;
    102     } else {
    103         return 0;
    104     }
    105 }
    106 
    107 /**************************************************************
    108  添加事件
    109 **************************************************************/
    110 Util.addEventListener = function(element, event, handler, param) {
    111     param.scope = param.scope || element;
    112 
    113     if(typeof element == 'string') {
    114         element = $(element);
    115     }
    116 
    117     var h = function() {
    118         handler.call(param.scope, param);
    119     }
    120 
    121     if(element.attachEvent) {
    122         element.attachEvent('on' + event, h);
    123 
    124     } else if(element.addEventListener) {
    125         element.addEventListener(event, h, false);
    126 
    127     } else {
    128         element['on' + event] = h;
    129     }
    130 }
    131 
    132 /**************************************************************
    133 检查标签值是否为空,当为空时提示
    134 
    135 @param el {Element, string}检查的标签
    136 @param msg {string}提示消息,当检查失败时提示
    137 @return true检查通过,标签的值不空,false标签值为空 
    138 **************************************************************/
    139 Util.checkIsNotEmpty = function(el, msg) {
    140     if(typeof el == 'string') {
    141         el = $(el);
    142     }
    143 
    144     if(Util.strIsEmpty(el.value)) {
    145         alert(msg);
    146         if(!el.disabled) {
    147             el.focus();
    148             el.select();
    149         }
    150         return false;
    151     }
    152     return true;
    153 }
    154 
    155 /**************************************************************
    156 字符串传换成date类型
    157 
    158 @str {string}字符串格式表示的日期,格式为:yyyy-mm-dd
    159 @return {Date}由str转换得到的Date对象
    160 **************************************************************/
    161 Util.str2date = function(str) {
    162     var re = /^(d{4})S(d{1,2})S(d{1,2})$/;
    163     var dt;
    164     if(re.test(str)) {
    165         dt = new Date(RegExp.$1, RegExp.$2 - 1, RegExp.$3);
    166     }
    167     return dt;
    168 }
    169 
    170 /**************************************************************
    171 计算2个日期之间的天数
    172 
    173 @day1 {Date}起始日期
    174 @day2 {Date}结束日期
    175 @return day2 - day1的天数差
    176 **************************************************************/
    177 Util.dayMinus = function(day1, day2) {
    178     var days = Math.floor((day2 - day1) / (1000 * 60 * 60 * 24));
    179     return days;
    180 }
    181 
    182 /**************************************************************
    183 设置组合列表框选择项
    184 
    185 @param combo 组合列表框
    186 @param value 选择值
    187 @param defaultIdx 默认选中项的序号
    188 **************************************************************/
    189 Util.setComboSelected = function(combo, value, defaultIdx) {
    190     if(typeof combo == 'string') {
    191         combo = $(combo);
    192     }
    193 
    194     var idx = defaultIdx;
    195     if(typeof defaultIdx == 'undefined') {
    196         idx = -1;
    197     }
    198 
    199     for(var i = 0, len = combo.options.length; i < len; ++i) {
    200         var v = combo.options[i].value;
    201         if(v == value) {
    202             idx = i;
    203             break;
    204         }
    205     }
    206 
    207     combo.selectedIndex = idx;
    208 }
    209 
    210 /**************************************************************
    211 字符串转换成日期 
    212 @param str {String}字符串格式的日期
    213 @return {Date}由字符串转换成的日期
    214 **************************************************************/
    215 Util.str2date = function(str) {
    216     var re = /^(d{4})S(d{1,2})S(d{1,2})$/;
    217     var dt;
    218     if(re.test(str)) {
    219         dt = new Date(RegExp.$1, RegExp.$2 - 1, RegExp.$3);
    220     }
    221     return dt;
    222 }
    223 
    224 /**************************************************************
    225  计算2个日期间的天数差
    226  
    227 @param day1 {Date}开始日期
    228 @param day2 {Date}结束日期
    229 @return 天数差
    230 **************************************************************/
    231 Util.dayInterval = function(day1, day2) {
    232     var days = Math.floor((day2 - day1) / (1000 * 60 * 60 * 24));
    233     return days;
    234 }
  • 相关阅读:
    方法和参数
    【转】priority_queue优先队列
    【转】主席树学习
    【转】树链剖分
    【转】线段树完全版~by NotOnlySuccess
    【转】树状数组
    【转】最大流EK算法
    【转】POJ题目分类推荐 (很好很有层次感)
    【转】原根
    【转】Polya定理
  • 原文地址:https://www.cnblogs.com/lishupeng/p/5931822.html
Copyright © 2020-2023  润新知