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 }
原文地址:https://www.cnblogs.com/lishupeng/p/5931822.html