`
yianpuodiaotu
  • 浏览: 237844 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

常用JavaScripts函数

    博客分类:
  • JEE
 
阅读更多
/**
* 判断客户端浏览器类型的变量
*/
var isIE = (navigator.appName == 'Microsoft Internet Explorer');
var isNetscape = (navigator.appName == 'Netscape');

/**
* 清空页面所有输入框的内容,包括文本和密码
*/
function clearInput()
{
	var allInput = document.getElementsByTagName("input");
	for(var i=0; i<allInput.length; i++)
	{
		var tagBody = allInput[i];
		if (tagBody.getAttribute("type") == "text"||tagBody.getAttribute("type") == "password")
		{
			tagBody.value= "";
		}
	}
}

/**
* 检验字符串是否为空
* @param {String} 字符串
* @return {bool} 是否为空
*/
function isEmpty(input)
{
	if( input==null ||  trim(input).length == 0 || input == 'null')
		return true;
	else
		return false;
}

/**
* 检查字符串的长度
* @param {String} 字符串
* @param {Integer} 要比较的长度
* @return {bool} true:变量长度<给出的长度;false:变量长度>=给出的长度
*/
function isShorter(str,reqlength)
{
	if( str.length<reqlength )
		return true;
	else
		return false;
}

/**
* 检查字符串是否是整数
* @param {String} 字符串
* @return {bool} 是否是整数
*/
function isInteger( s )
{ 
	var isInteger = RegExp(/^[0-9]+$/);
	return ( isInteger.test(s) );
}

/**
* 检查字符串是否是字母
* @param {String} 字符串
* @return {bool} 是否是字母
*/
function isChar( s )
{ 
	var isInteger = RegExp(/^[a-zA-Z]+$/);
	return ( isInteger.test(s) );
}
/**
* 判断输入变量是否是实数
* @param {String} 要检查的变量值
* @return {bool} 是否为实数
*/
function isDecimal( s )
{
	var isDecimal = RegExp(/^([0-9]+(\.?))?[0-9]+$/);
	return ( isDecimal.test(s) );
}

/**
* 判断输入变量是否是数字或者字母
* @param {String} 要检查的变量值
* @return {bool} 是否为数字或者字母
*/
function isIntChar( s )
{
 	var isIntChar = RegExp(/^[a-zA-Z0-9]+$/);
	return ( isIntChar.test(s) );
 }

/**
* 判断输入变量是否是数字或者字母或者特殊字符
* 特殊字符:|_ - * & % $ # @ ! ~ ^ ( )
* @param {String} 要检查的变量值
* @return {bool} 是否为数字或者字母或者特殊字符
*/
function isIntCharSpecial( s )
{
	var isIntCharSpecial = RegExp(/^[a-zA-Z0-9(\|)(\_)(\-)(\*)(\&)(\%)(\$)(\#)(\@)(\!)(\~)(\^)(\()(\))]+$/);
	return ( isIntCharSpecial.test(s) );
}

/**
* 判断输入变量是否包含数字或者字母
* @param {String} 要检查的变量值
* @return {bool} 是否包含数字或者字母
*/
function containIntChar( s )
{
	var containIntChar = RegExp(/[a-zA-Z0-9]+/);
	return ( containIntChar.test(s) );
}  

/**
* 判断输入变量是否包含特殊字符
* 特殊字符:~ ! @ # $ % ^ & * ( ) - _ + = [ ] { } | \ ; : ' " , . / < > ? <
* @param {String} 要检查的变量值
* @return {bool} 是否包含特殊字符
*/
function containSpecial( s )
{
	var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/);
	return ( containSpecial.test(s) );
}

/**
* 检查字符串是否为合法email地址
* @param {String} 字符串
* @return {bool} 是否为合法email地址
*/
function isEmail(s) 
{
	var isEmail = RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
	return ( isEmail.test(s) );
}

/**
* 若为null则替换为指定的字符串
* @param {String} 要测试的字符串
* @param {String} 为空时替换的字符串
* @return {String} 
*/
function nvl(s,replaceString)
{
	if ( isEmpty(s) )
		return replaceString;
	else
		return s;
} 

/**
* 将页面中或指定表格ID的所有checkbox置为选中状态或全不选状态
* @param {bool} choose: true选中;false不选
* @param {string} tableID:要指定的表格ID
*/
function selectAll(choose,tableID)
{
	var allCheck;
	if (arguments.length == 1) {
       allCheck =  document.getElementsByTagName("input");
    }else{
	   allCheck =  document.getElementById(tableID).getElementsByTagName("input");
    }
	 
	for(var i=0; i<allCheck.length; i++){
		var tagBody = allCheck[i];
		if (tagBody.getAttribute("type") == "checkbox")
		{
			tagBody.checked= choose;
		}
	}
}

/**
* 取得页面中的所有选中的checkbox的id列表
* @return {String} 以'|'分隔的选中id,如果没有选中任何checkbox则返回空串
*/
function getCheckList()
{	
	var checkList = '';
	var allCheck = document.getElementsByTagName("input");
	for(var i=0; i<allCheck.length; i++)
	{
		var tagBody = allCheck[i];
		if (tagBody.getAttribute("type") == "checkbox")
		{
			if ( tagBody.checked && !isEmpty(tagBody.id) )
			{
				checkList += tagBody.id  + '|';
			}
		}
	}
	return checkList;
}


/**
* 取得指定的radio按钮的选中值
* @param {String} radio按钮ID
* @return {String} radio按钮的选中值
*/
function getRadioValue(radioName)
{	
	var radioList = document.getElementsByName(radioName);
	for (var i = 0; i < radioList.length; i++)
	{
		if( radioList[i].checked == true )
		{
			return radioList[i].value;
		}
	}
}

/**
* 检验日期是否符合YYYYMMDD的格式,是否合法
* @param {String} 日期字符串
* @return {bool} 是否是合法日期
*/
/*
function isDate(dateInput) {
	var inputYear = dateInput.substring( 0, 4 );
	var inputMonth = parseInt(dateInput.substring( 4, 6 ))-1;
	var inputDay = dateInput.substring( 6, 8 );
	var dateTest = new Date(inputYear,inputMonth,inputDay);
	var testYear = dateTest.getFullYear();
	var testMonth = dateTest.getMonth();
	var testDay = dateTest.getDate();
	var isValidateDate = (inputYear == testYear && inputMonth == testMonth && inputDay == testDay );
	return isValidateDate;
}*/
function isDate(param) {
	var pattern = /^\d+$/;
	if ( param.length != 8 ) {
		return false;
	}
	if(!pattern.test(param)) {
		return false;
	}
	sYear = param.substring( 0, 4 );
	sMonth = param.substring( 4, 6 );
	sDay = param.substring( 6, 8 );
	if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth )  > 12 ) ) {
		return false;
	}
	var leapYear = ((( sYear % 4 == 0 ) && ( sYear % 100 != 0 )) || ( sYear % 400 == 0 )) ? true : false;
	var monthDay = new Array(12);
	monthDay[0] = 31;
	monthDay[1] = leapYear ? 29 : 28;
	monthDay[2] = 31;
	monthDay[3] = 30;
	monthDay[4] = 31;
	monthDay[5] = 30;
	monthDay[6] = 31;
	monthDay[7] = 31;
	monthDay[8] = 30;
	monthDay[9] = 31;
	monthDay[10] = 30;
	monthDay[11] = 31;
	if ( ( eval( sDay ) < 1 ) || ( eval( sDay )  > monthDay[eval(sMonth)-1] ) ) {
		return false;
	}
	return true;
}

/**
 * 检查日期选择的格式及区间
 */
function checkDate(beginDate,endDate){
	if (! isDate(beginDate)) {
		alert("起始日期不正确");
		beginDate.focus();
		return true;
	}
	if (! isDate(endDate)) {
		alert("终止日期不正确");
		beginDate.focus();
		return true;
	}
	if((beginDate)>(endDate)){
		alert("截止日期应大于或等于起始日期,请重新输入");
		return true;
	}
	if (parseInt(endDate, 10) < parseInt(beginDate, 10) || ! dateInterval(beginDate,endDate, 90)) {
		alert("终止日期应在起始日期之后90天内");
		return true;
	}
}

function isDate1(dateInput){
	var inputYear = dateInput.substring( 0, 4 );
	var inputMonth = parseInt(dateInput.substring( 4, 6 ));
	var dateTest = new Date(inputYear,inputMonth);
	var testYear = dateTest.getFullYear();
	var testMonth = dateTest.getMonth();
	var isValidateDate = (inputYear == testYear && inputMonth == testMonth );
	return isValidateDate;
}

/**
* 去掉字符串前后的空格
* @param {String} 字符串
* @return {String} 去除空格后的字符串
*/
function trim(input) {
	return input.replace(/(^\s*)|(\s*$)/g, "");
}

/**
* 检查时间间隔是否在规定间隔之内
* @param {String} 开始日期
* @param {String} 结束日期
* @param {Integer} 间隔,单位为天
* @return {bool} 是否在规定间隔之内
*/
function dateInterval(startDate,endDate,interval) {
	var date1 = new Date(eval(startDate.substring(0,4)),eval(startDate.substring(4,6))-1,eval(startDate.substring(6,8)));
	var date2 = new Date(eval(endDate.substring(0,4)),eval(endDate.substring(4,6))-1,eval(endDate.substring(6,8)));
	if ( ( date2 - date1 ) / 86400000 > eval(interval) - 1 )
		return false;
	return true;
}

/**
* 控制text域的最大输入长度
* 用法:onblur="checkLength(this,要控制的长度);"
* @param {Object} text对象
* @param {Integer} 要控制的长度
*/
function checkLength(v,l){
	var s = v.value;
	var totalLength = 0;
	var charCode;
	for(i=0;i<s.length;i++)
	{
		charCode = s.charCodeAt(i);
		if (charCode < 0x007f) {
			totalLength ++;
		} else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
			totalLength += 2;
		} else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
			totalLength += 3;
		}
    }
	if( l>=totalLength )
	{
		return true;
	}
	else
	{
		//alert("该输入项插入值过长!最多输入"+l+"个字节");
		v.value = "";
		v.focus();
		return false;
	}
}

function alterButton(acceptBtId,ipt){
	var accBtn = document.getElementById(acceptBtId);
	if(accBtn)
	if(ipt.value.length!=0){
		accBtn.disabled = true;
	}else{
		accBtn.disabled = false;
	}
}

/**
* 控制textarea域的最大输入长度
* 用法:onblur="checkAreaLength(this,要控制的长度);"
* @param {Object} textarea对象
* @param {Integer} 要控制的长度
*/
function checkAreaLength(v,l){
	var s= v.value;
	var totalLength = 0;
	var charCode;
	
	for(i=0;i<s.length;i++)
	{
		charCode = s.charCodeAt(i);
		if (charCode < 0x007f) {
			totalLength ++;
		} else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
			totalLength += 2;
		} else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
			totalLength += 3;
		}
        }
	
	if(totalLength>l){
		//alert("该输入项插入值过长!最多输入"+l+"个字节");  	
		v.value = "";
		v.focus();
		return false;
	}
	return true;
}

/**
* 修改指定tag的样式
* @param {String} tag的id
* @param {String} 新的样式
*/
function changeClass(tagId,newClassName)
{
	document.getElementById(tagId).className = newClassName;
}

/**
* 清空一个表的内容
* @param {String} 表体的ID
*/
function cleanTableBody(tbodyName)
{
	var tbody  = document.getElementById(tbodyName);
	var rows=tbody.getElementsByTagName("TR");
	var size = rows.length;
	for(var i=0;i<size;i++)
	{
		tbody.deleteRow(0);
	}
}

/**
* 更改一个对象的选中状态,可以用于radio和checkBox
* @param {String} 对象的ID
*/
function doCheck(objectID)
{
	var checkObj = document.getElementById(objectID);
	if(checkObj.checked){
		checkObj.checked = false;
	}else{
		checkObj.checked = true;
	}
}

/**
* 将yyyymmddhhmiss方式显示的日期转为中文显示
* @param {String} yyyymmddhhmiss格式的时间
*/
function getChineseDateTime(dateTime)
{
	if( isEmpty(dateTime) || dateTime.length < 14 )
	{
		return dateTime;
	}
	var returnDate = dateTime.substr(0,4)+"年"+dateTime.substr(4,2)+"月"+dateTime.substr(6,2)+"日";
	var returnTime = dateTime.substr(8,2)+":"+dateTime.substr(10,2)+":"+dateTime.substr(12,2);
	return  returnDate+returnTime; 
}

/**
* 检验日期是否符合YYYYMM的格式,是否合法
* @param {String} 日期字符串
* @return {bool} 是否是合法日期
*/
function isYearMonth(param) {
	var pattern = /^\d+$/;
	if ( param.length != 6 ) {
		return false;
	}
	if(!pattern.test(param)) {
		return false;
	}
	sYear = param.substring( 0, 4 );
	sMonth = param.substring( 4, 6 );
	if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth )  > 12 ) ) {
		return false;
	}
	return true;
}

/**
* 高亮关键字
* @param {String} 搜索结果字符串
* @param {String} 搜索关键字
* @return {String} 关键字高亮的html字符串
*/
function highLightKeyword(content,key)
{
	var SPAN_BEGIN_TAG = '<span class="highLight">';
	var SPAN_END_TAG = '</span>';
	var htmlString = '';
	var searchStartPos = 0;
	while(true)
	{ 
		var keyStartPos = content.indexOf(key,searchStartPos);
		if( keyStartPos<0 )
		{
			htmlString += content.substring(searchStartPos);
			return htmlString;
		}
		var keyEndPos = keyStartPos+key.length;
		htmlString += content.substring(searchStartPos,keyStartPos);
		htmlString += SPAN_BEGIN_TAG;
		htmlString += key;
		htmlString += SPAN_END_TAG;
		searchStartPos = keyEndPos;
	}
}

/**
* 获取账号列表中选中的账号
* @param {String} 账号列表的id
* @return {String} 账号
*/
function getAccountNo( selectId )
{
	var selectValue = document.getElementById(selectId).value;
	if ( !isEmpty(selectValue) )
	{
		return (selectValue.split('|'))[0];
	}
	return '';
}

/**
* 获取账号列表中选中的账户名称
* @param {String} 账号列表的id
* @return {String} 账户名称
*/
function getAccountName( selectId )
{
	var selectValue = document.getElementById(selectId).value;
	if ( !isEmpty(selectValue) )
	{
		return (selectValue.split('|'))[1];
	}
	return '';
}

/**
* 获取账号列表中选中的账户开户网点
* @param {String} 账号列表的id
* @return {String} 账户开户网点
*/
function getAccountOpenNode( selectId )
{
	var selectValue = document.getElementById(selectId).value;
	if ( !isEmpty(selectValue) )
	{
		return (selectValue.split('|'))[2];
	}
	return '';
}

/**
* 获取账号列表中选中的账户币种
* @param {String} 账号列表的id
* @return {String} 账户币种
*/
function getAccountCurrency( selectId )
{
	var selectValue = document.getElementById(selectId).value;
	if ( !isEmpty(selectValue) )
	{
		return (selectValue.split('|'))[3];
	}
	return '';
}

/*
 * 显示提示
 */
function showTip(tipId,tipText){
	document.getElementById(tipId).innerHTML = tipText;
	changeClass(tipId,"tip_on");
}
/*
 * 隐藏提示
 */
function hideTip(tipId){
	document.getElementById(tipId).innerHTML = "&nbsp;";
	changeClass(tipId,"tip_off");
}
/*
 * 隐藏所有的提示
 */
function hideAllTip(){
	var divArr = document.getElementsByTagName("div");
	for(i = 0 ; i < divArr.length ; i++){
		var divId = divArr[i].id;
		if(!isEmpty(divId) && divId.substring(divId.length-3,divId.length) == "Tip")
			hideTip(divId);
	}
}

/*
 * 主交易区跳转到指定的action
 * @param {String} action
 */
function linkTo(actionUrl)
{
	window.top.doTranDispatch(actionUrl);
}

/*
 * 根据页面实际高度更新框架大小
 */
function resize()
{
	window.top.sizeChange();
}

/*
 * 根据json数据生成输入表单用的html
 * 示例:getInputHtmlFromJson({name:'mvmouse'},'test') = '<input type="hidden" name="test.name" value="mvmouse"/>'
 * @param {json} jsonInput
 * @param {String} input的name的前缀
 * @return {String} 生成的html 
 */
function getInputHtmlFromJson( jsonInput,namePrefix )
{
	var resultHtml = '';
	var prefixString ='<input type="hidden" name="'+namePrefix;
	for (var key in jsonInput ) 
	{
        var value = jsonInput[key];
        resultHtml += prefixString + key + '" value="'+value+'" />';
	}
	return resultHtml;
}

/*
 * 修改下拉单中内容
 */
function changeSelectItem(selectName,selectValue){
	var options=$(selectName).options;
	for(var i=0;i<options.length;i++){
		var optionValue=options[i].value.split("|");
		if(optionValue[0]==selectValue){
			options[i].selected=true;
			return true;
		}
	}
	return false;
}

/**
 * 验证指定的checkbox是否全部没有选中
 * @param {String} checkBoxName--checkbox对象的Name
 * @return {boolean} 验证结果--true/全部没选中;false/有选中的
 */
function noneChecked(checkBoxName) {
  	var checkObj = document.getElementsByName(checkBoxName);
	if (checkObj.length) {
		for (var i = 0;i < checkObj.length;i ++) {
			if (checkObj[i].checked) {
				return false;
			}
		}
		return true;
	} else {
		return ! checkObj.checked;
	}
}

/**
 * 生成一个隐藏域,放到Form提交表单中
 * @param {Form} formObj--提交表单对象
 * @param {String} name--隐藏域的名称
 * @param {String} value--隐藏域的值
 */
function createHiddenField(formObj, name, value) {
	var field = document.createElement("input");
	field.type = "hidden";
	field.name = name;
	field.value = value;
	formObj.appendChild(field);
}
/**
* 设置css换肤
* @param {title} 	样式的名称
*/
function setActiveStyleSheet(title) {
	var i,a;
  if (title) {
	  for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
		  if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) {
			a.disabled = true;
		  if(a.getAttribute('title') == title) a.disabled = false;
		  }
	  }
  }
}

/**
 * 禁用所有button
 */
function disableAllButton()
{
var inputObjs=document.getElementsByTagName("input");
for(i=0;i<inputObjs.length;i++) {
	if(inputObjs[i].type == "button" || inputObjs[i].type == "reset" || inputObjs[i].type == "submit") {
		inputObjs[i].disabled=true;
	}
}

}
/**
 * 启用所有button
 */
function enableAllButton()
{

for(i=0;i<document.all.length;i++) {
	if(document.all(i).type == "button" || document.all(i).type == "reset" || document.all(i).type == "submit") {
		document.all(i).disabled=false;
	}
}

}
/**
 *是否为规范的电话号码
 */
function isTelephone(s) {
	if(isEmpty(s) || !isInteger(s) || s.length > 12) {
		alert('电话号码必须为12位以内的数字!');
		return false;
	}
	return true;
}

/**
 *格式化时间
 */
function formatDate(time) {
	var s="";
	if(time.length>8){
	s=time.substring(0,4);
	s=s+"-";
	s=s+time.substring(4,6);
	s=s+"-";
	s=s+time.substring(6,8);
	s=s+" ";
	s=s+time.substring(8,10);
	s=s+":";
	s=s+time.substring(10,12);
	s=s+":";
	s=s+time.substring(12,14);
	return s;
	}else if(time==""){
		return s;
	}else{
		s=time.substring(0,4);
		s=s+"-";
		s=s+time.substring(4,6);
		s=s+"-";
		s=s+time.substring(6,8);
		return s;
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics