/**************************
**********************************************************************************************/
/**************************************************************
获取文本框的值并转换成Float类型返回
**************************************************************/
function $Float(el){
return Util.parseFloat($F(el));
}
/**************************************************************
获取文本框的值并转换成Integer类型返回
**************************************************************/
function $Integer(el){
return Util.parseInteger($F(el));
}
/**************************************************************
设置文本框的值
**************************************************************/
function $Set(el, value){
$(el).value = value;
}
/**************************************************************
工具类Util
**************************************************************/
var Util = {};
/**************************************************************
格式化字符串,使用方式类似java中的String.format()方法
**************************************************************/
Util.format = function(format){
var args = [];
for(var i=1; i<arguments.length; i++){
args.push(arguments[i]);
}
return format.replace(/\{(\d+)\}/g, function(m, i){
return args[i];
});
}
/**************************************************************
判断字符串是否为空
**************************************************************/
Util.strIsEmpty = function(str){
return str == null || !str || typeof str == undefined || str == '';
}
/**************************************************************
将传入值转换成整数
**************************************************************/
Util.parseInteger = function(v){
if(typeof v == 'number'){
return v;
}else if(typeof v == 'string'){
var ret = parseInt(v);
if(isNaN(ret) || !isFinite(ret)){
return 0;
}
return ret;
}else{
return 0;
}
}
/**************************************************************
将传入值转换成小数
**************************************************************/
Util.parseFloat = function(v){
if(typeof v == 'number'){
return v;
}else if(typeof v == 'string'){
var ret = parseFloat(v);
if(isNaN(ret) || !isFinite(ret)){
return 0;
}
return ret;
}else{
return 0;
}
}
/**************************************************************
将传入值转换成小数,传入值可以是以逗号(,)分隔的数字,此方法将会过滤掉(,)
**************************************************************/
Util.parseDotFloat = function(v){
if(typeof v == 'number'){
return v;
}else if(typeof v == 'string'){
v = v.replace(/[^\d|.]/g , '');
v = parseFloat(v);
if(isNan(v) || !isFinite(v)){
return 0
}
return ret;
}else{
return 0;
}
}
/**************************************************************
添加事件
**************************************************************/
Util.addEventListener = function(element, event, handler, param){
param.scope = param.scope || element;
if(typeof element == 'string'){
element = $(element);
}
var h = function(){
handler.call(param.scope, param);
}
if(element.attachEvent){
element.attachEvent('on' + event, h);
}else if(element.addEventListener){
element.addEventListener(event, h, false);
}else{
element['on' + event] = h;
}
}
/**************************************************************
检查标签值是否为空,当为空时提示
@param el {Element, string}检查的标签
@param msg {string}提示消息,当检查失败时提示
@return true检查通过,标签的值不空,false标签值为空
**************************************************************/
Util.checkIsNotEmpty = function(el, msg){
if(typeof el == 'string'){
el = $(el);
}
if(Util.strIsEmpty(el.value)){
alert(msg);
if(!el.disabled){
el.focus();
el.select();
}
return false;
}
return true;
}
/**************************************************************
字符串传换成date类型
@str {string}字符串格式表示的日期,格式为:yyyy-mm-dd
@return {Date}由str转换得到的Date对象
**************************************************************/
Util.str2date = function(str){
var re = /^(\d{4})\S(\d{1,2})\S(\d{1,2})$/;
var dt;
if(re.test(str)){
dt = new Date(RegExp.$1,RegExp.$2 - 1,RegExp.$3);
}
return dt;
}
/**************************************************************
计算2个日期之间的天数
@day1 {Date}起始日期
@day2 {Date}结束日期
@return day2 - day1的天数差
**************************************************************/
Util.dayMinus = function(day1, day2){
var days = Math.floor((day2-day1)/(1000 * 60 * 60 * 24));
return days;
}
/**************************************************************
设置组合列表框选择项
@param combo 组合列表框
@param value 选择值
@param defaultIdx 默认选中项的序号
**************************************************************/
Util.setComboSelected = function(combo, value, defaultIdx){
if(typeof combo == 'string'){
combo = $(combo);
}
var idx = defaultIdx;
if(typeof defaultIdx == 'undefined'){
idx = -1;
}
for(var i=0, len=combo.options.length; i<len; ++i){
var v = combo.options[i].value;
if(v == value){
idx = i;
break;
}
}
combo.selectedIndex = idx;
}
/**************************************************************
字符串转换成日期
@param str {String}字符串格式的日期
@return {Date}由字符串转换成的日期
**************************************************************/
Util.str2date = function(str){
var re = /^(\d{4})\S(\d{1,2})\S(\d{1,2})$/;
var dt;
if (re.test(str)){
dt = new Date(RegExp.$1,RegExp.$2 - 1,RegExp.$3);
}
return dt;
}
/**************************************************************
计算2个日期间的天数差
@param day1 {Date}开始日期
@param day2 {Date}结束日期
@return 天数差
**************************************************************/
Util.dayInterval = function(day1,day2){
var days = Math.floor((day2-day1)/(1000 * 60 * 60 * 24));
return days;
}