读书人

惯用JavaScripts函数

发布时间: 2012-11-22 00:16:41 作者: rapoo

常用JavaScripts函数

/*** 判断客户端浏览器类型的变量*/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;elsereturn false;}/*** 检查字符串的长度* @param {String} 字符串* @param {Integer} 要比较的长度* @return {bool} true:变量长度<给出的长度;false:变量长度>=给出的长度*/function isShorter(str,reqlength){if( str.length<reqlength )return true;elsereturn 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;elsereturn 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 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;}}

?

读书人网 >JavaScript

热点推荐