兼容VBScript的javascript方法 及javascript工具方法


/**************************************************************************************************************************
///扩展Date原型上的方法
/**************************************************************************************************************************/
Date.prototype.format = function (format) {
var args = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds()
};
if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var i in args) {
var n = args[i];
if (new RegExp("(" + i + ")").test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
}
return format;
};

/**************************************************************************************************************************
///日期验证;
///验证yyyy-MM-dd格式的日期类型;
/**************************************************************************************************************************/
function isDate(dateStr) {
//alert(dateStr);
dateStr = dateStr.replace(/\//ig, "-");
var datePat = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
var matchArray = dateStr.match(datePat);
if (matchArray == null) return false;
var month = matchArray[2];
var day = matchArray[3];
var year = matchArray[1];
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) return false;
if (month == 2) {
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day == 29 && !isleap)) return false;
}
return true;
}

/**************************************************************************************************************************
///计算是否大于当前日期 sDate1要比较的日期 返回当前日期 - sDate1要比较的日期
/**************************************************************************************************************************/
function DateDiffToday(sDate1) {
var aDate = new Date();
var year = aDate.getFullYear();
var month = aDate.getMonth() + 1;
var day = aDate.getDate()
var oDate1, oDate2
oDate1 = new Date(month + '-' + day + '-' + year); //当前日期
var arrDate = sDate1.split("-")
oDate2 = new Date(arrDate[1] + '-' + arrDate[2] + '-' + arrDate[0])
iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
return iDays
}

/**************************************************************************************************************************
///计算天数差的函数,通用
/**************************************************************************************************************************/
function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays
sDate1 = sDate1.replace(/\//ig, "-");
sDate2 = sDate2.replace(/\//ig, "-");

aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
return iDays
}

///日期比较;
///日期为yyyy-MM-dd格式;
function compDate(strdate1, strdate2) {
strdate1 = strdate1.replace(/\//ig, "-");
strdate2 = strdate2.replace(/\//ig, "-");

adate1 = strdate1.split("-");
adate2 = strdate2.split("-");
var date1 = new Date(adate1[0], adate1[1] - 1, adate1[2]);
var date2 = new Date(adate2[0], adate2[1] - 1, adate2[2]);
var ret;
ret = date2 - date1;
return ret;

}

//兼容VBScript的cdate方法
function cdate(vStrDate) {
var strdate1 = vStrDate.replace(/\//ig, "-");
if (isDate(strdate1)) {
arrdate1 = strdate1.split("-");
return new Date(arrdate1[0], arrdate1[1] - 1, arrdate1[2]);
} else {
return vStrDate;
}
}
//兼容VBScript的year方法
function year(vDate) {
return parseInt(vDate.getFullYear());
}
/**************************************************************************************************************************
///String对象的原型上扩展一个方法【trim】
///使用案例"dev".trim();
/// return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉
/**************************************************************************************************************************/
String.prototype.trim = function () {//删除左右两端的空格
return this.replace(/(^\s*)|(\s*$)/g, "");
}

//兼容VBScript的trim方法
function trim(vStr) {
return (vStr+"").replace(/(^\s*)|(\s*$)/ig, "");
}
/**************************************************************************************************************************
///Steven Levithan 在进行性能测试后提出了在JS中执行速度最快的裁剪字符串方式,在处理长字符串时性能较好
/**************************************************************************************************************************/
function fn_trim2(str) {
str = str.replace(/^(\s|\u00A0)+/, '');
for (var i = str.length - 1; i >= 0; i--) {
if (/\S/.test(str.charAt(i))) {
str = str.substring(0, i + 1);
break;
}
}
return str;
}

//正整数
function isPositiveInt(val) {
var intReg = /^([0-9]+|[1-9][0-9]*|[1-9]\d{0,2}(,\d{3}){1,3})$/;
return intReg.test(val);
}

//兼容VBScript的IsNumeric方法
function isNumeric(vStrInput) {
return (!isNaN(vStrInput));
}

//兼容VBScript的cdbl方法
function cdbl(vStrInput) {
if (isNumeric(vStrInput)) {
return parseFloat(vStrInput);
} else {
return vStrInput;
}
}

//兼容VBScript的clng方法
function clng(vStrInput) {
if (isNumeric(vStrInput)) {
return parseInt(vStrInput);
} else {
return vStrInput;
}
}

//兼容VBScript的int方法
function int(vStrInput) {
if (isNumeric(vStrInput)) {
return parseInt(vStrInput);
} else {
return vStrInput;
}
}

//兼容VBScript的checkInt方法
function checkInt(checkStr) {
return checkNum(checkStr);
}

//兼容VBScript的checkNum方法
function checkNum(checkStr) {
var bFlag = false;
if (checkStr) {
var checkInt_checkOK = "0123456789";
bFlag = true;
for (var i = 0, len = checkStr.length; i < len; i++) {
var tmp = checkStr.substr(i, 1);
//alert(tmp);
if (checkInt_checkOK.indexOf(tmp) < 0) {
bFlag = false;
break;
}
}
}
return bFlag;
}

//兼容VBScript的split方法
function split(orgiStr, separatorStr) {
return orgiStr.split(separatorStr);
}

//兼容VBScript的join方法
function join(orgiStr, separatorStr) {
return orgiStr.join(separatorStr);
}

//兼容VBScript Replace(string,find,replacewith[,start[,count[,compare]]])
function replace(orgiStr, find, replacewith) {
//stringObject.replace(regexp/substr,replacement)
return orgiStr.replace(find, replacewith);
}

//兼容VBScript InStr([start,]string1,string2[,compare])
function inStr(orgiStr, find) {
//true:找到了,false:没有找到
return (!orgiStr || !find) ? false : ((orgiStr.indexOf(find)) >= 0);
}

//Response.Write(HttpContext.Current.Server.UrlDecode("%E6%96%B0%E6%94%AF%E6%8C%81%E8%B4%B9%E7%94%A8"));
function chineseTransform(v) {
return encodeURIComponent(v, "utf-8");
}

//兼容VBScript Left(string,length)
function left(orgiStr, xlength) {
if ((!orgiStr) || (!(orgiStr.length > 0))) {
return "";
} else {
return (orgiStr+"").substr(0, xlength);
}
}

//兼容VBScript Len(string|varname)
function len(orgiStr) {
return (orgiStr+"").length;
}

//兼容VBScript Mid(string,start[,length])
function mid(orgiStr, iStart, iLength) {
if (!orgiStr || (iLength > orgiStr.length) || (iStart > orgiStr.length)) {
return "";
} else {
if (iLength > 0) {
return orgiStr.substr((iStart - 1), iLength);
} else {
return orgiStr.substring(iStart);
}
}
}

//兼容VBScript right(string,length)
function right(orgiStr, xlength) {
if ((!orgiStr) || (!(orgiStr.length > 0))) {
return "";
} else {
var tmpStr = ((orgiStr.split("")).reverse()).join("");
var resultStr = (((((tmpStr + "").substr(0, xlength)).split("")).reverse()).join(""));
return resultStr;
}
}

/*
获取select标签选择中option上自定义属性值
<select id="slt_stf" name="slt_stf" >
<option companycode='' value="" selected>请选择人员</option>
...
*/
function fn_getSltSelfAttr(sltId, sltSelfAttr) {
var oslt = document.getElementById(sltId); //slt_stf
var index = oslt.selectedIndex; // 选中索引
return oslt.options[index].getAttribute(sltSelfAttr); //companycode
}

/*
获取一组radio标签中选中的value
<input type="radio" name="groupName" id="rad1"/>
<input type="radio" name="groupName" id="rad2"/>
*/
function fn_getRadioVal(radioName) {
var arrRadio = document.getElementsByName(radioName);
for (var i = 0,ilen=arrRadio.length; i < ilen; i++) {
if (arrRadio[i].checked) {
return arrRadio[i].value;
}
}
return undefined;
}

posted @ 2017-07-26 16:39  haikuang  阅读(201)  评论(0)    收藏  举报