//============================================= //建立日期:2012年7月24日 //功能(néng)概述(shù):通用函数集,供系统全局调用 //调(diào)用(yòng)方法:在调用文件头引入即可,如下: // // // //============================================= //========================================== //功能(néng): 去掉字符左边的(de)空格 //输(shū)入参数:要格式化的(de)字符串 //返回值:去掉左边空格的字符(fú)串 //调用(yòng)方(fāng)法 //========================================== function ltrim(str) { if (str==null) return null; var s=""; for (var i=0;i=0;i--) { if (str.charAt(i)!=" ") { s=str.substring(0,i+1); break; } } return s; }//========================================== //功能: 去掉字符左(zuǒ)右边的(de)空(kōng)格 //输入参数:要格式(shì)化(huà)的字符串 //返回(huí)值(zhí):去掉左右边空格的字符串 //调用方法 //==========================================function trim(str) { return(ltrim(rtrim(str))); }//========================================== //功能: 字符转为大写 //输入参数(shù):无(wú) //返(fǎn)回值:空 //调用方法:在文本控件里onkeydown="jsUpperCase();" //========================================== function jsUpperCase() { if ((window.event.keyCode>=97) && (window.event.keyCode<=122)) window.event.keyCode = window.event.keyCode-32; }//========================================== //功能: 把输(shū)入(rù)的字符转为大写 //输(shū)入参数:当(dāng)前对象 //返回(huí)值:空 //调用方(fāng)法:在文本控件里onblur="toUpperCase(this);" //========================================== function toJsUpperCase(obj) { try { var s = obj.value; if (trim(s) == "") return; obj.value = s.toUpperCase(); } catch(e) { } }//========================================== //功能(néng): 把输(shū)入的字符(fú)转为(wéi)小写 //输入参数:无 //返回值:空(kōng) //调用(yòng)方法:在文本(běn)控(kòng)件里onkeydown="jsLowerCase();" //========================================== function jsLowerCase() { if ((window.event.keyCode>=65) && (window.event.keyCode<=90)) window.event.keyCode = window.event.keyCode+32; }//========================================== //功能: 把输(shū)入的字符转为(wéi)小写 //输(shū)入参数(shù):当前对(duì)象 //返(fǎn)回值:空 //调用方法:在文(wén)本(běn)控件(jiàn)里onblur="toJsLowerCase(this);" //========================================== function toJsLowerCase(obj) { var s = obj.value; if (trim(s) == "") return; obj.value = s.toLowerCase(); } //========================================== //功能: 只能输入数字(zì) //输(shū)入参数: //obj:输入域对象(xiàng) //symbol:输入(rù)符号,有"-","."两(liǎng)种,用","分(fèn)开 //bite:小数点(diǎn)后面位数,默认2位 //返(fǎn)回值(zhí):空(kōng) //调用(yòng)方(fāng)法:在文本(běn)控件里onkeypress="typeNumber(this,'.,-',2);" //========================================== function typeNumber(obj,symbol,bite) { var str = trim(obj.value.replace(/\,/g,"")); var bDot = false; var bNega = false; if (typeof(symbol) == 'undefined') symbol = ""; if (typeof(bite) == 'undefined') bite = 2; bDot = (symbol.indexOf(".")>=0?true:false); bNega = (symbol.indexOf("-")>=0?true:false); if (bNega) //允许(xǔ)输入(rù)负号 { //只能第(dì)一位(wèi)为负(fù)号 if (str.length>0 && window.event.keyCode == 45) { window.event.returnValue = false; return; } //只能输入一个负号 if (str.indexOf("-")>=0 && window.event.keyCode == 45) { window.event.returnValue = false; return; } } if (bDot) //允(yǔn)许输入(rù)小(xiǎo)数点 { //只能输入一个小数(shù)点 if (str.indexOf(".")>=0 && window.event.keyCode == 46) { window.event.returnValue = false; return; } } //验证小数点后两位 if ( str.indexOf(".")>=0 ) { var temp = str; if ( str.indexOf("-")>=0 ) { temp = str.substring(1,str.length); } if ( ! behindDot(temp,bite -1) ) { window.event.returnValue = false; return; } } if (window.event.keyCode<48 || window.event.keyCode>57) { if ((bDot && window.event.keyCode == 46) || (bNega && window.event.keyCode == 45)) { return; } window.event.returnValue = false; } }//========================================== //功能: 只能输(shū)入整数 //输入(rù)参数:negative 是否允许(xǔ)输入负数,true:允许输入负数,false:不(bú)允(yǔn)许,默认:false //返回值:空 //调用方法:在文本控件里onkeypress="typeInteger(this,false);" //========================================== function typeInteger(obj,negative) { if (typeof(negative) == 'undefined') negative = false; typeNumber(obj,(negative==true?"-":"")); }//========================================== //功能: 只能输入浮点数(shù) //参数: //obj,输入域对象 //negative:是否(fǒu)允许(xǔ)输入负数,true:允许输入负数,false:不允许(xǔ),默(mò)认(rèn):false //返回值:空(kōng) //调用(yòng)方法:在文本(běn)控件里onkeypress="typeFloat(this,false);" //========================================== function typeFloat(obj,negative) { if (typeof(negative) == 'undefined') negative = false; typeNumber(obj,(negative==true?"-,.":".")); }//========================================== //功能: 只能输入整数 //参数:当前对象 //返回值:boolean //调用方法:在文本控件里onblur="verifyInteger(this);" //========================================== function verifyInteger(obj,negative) { if (typeof(negative) == 'undefined') negative = false; verifyNumber(obj,(negative==true?"-":"")); }//========================================== //功能: 只能输(shū)入浮点数 //参数:当前(qián)对象 //返回值:boolean //调用方法:在文本控件里onblur="verifyFloat(this);" //========================================== function verifyFloat(obj,negative) { if (typeof(negative) == 'undefined') negative = false; verifyNumber(obj,(negative==true?"-,.":".")); }//========================================== //功能: 只(zhī)能(néng)输入有效(xiào)数(shù)字 //参数: //obj:输入域对(duì)象 //symbol:输入符号,有"-","."两(liǎng)种,用","分开 //bite:小数点(diǎn)后位数 //返(fǎn)回值:boolean //调用方法:在文(wén)本控件里onblur="verifyNumber(this,'-,.',2);" //========================================== function verifyNumber(obj,symbol,bite) { var bDot = false; var bNega = false; if (typeof(symbol) == 'undefined') symbol = ""; if (typeof(bite) == 'undefined') bite = 2; bDot = (symbol.indexOf(".")>=0?true:false); bNega = (symbol.indexOf("-")>=0?true:false); var errInfo = "不是有效的数字!\n\n请重新(xīn)输入!"; var str = trim(obj.value); if (str == "") return true; try { if (!isNumber(str,symbol)) { $.messager.alert("提(tí)示", "\"" + str + "\""+errInfo, "error"); obj.value=""; obj.focus(); return false; } } catch (e) { $.messager.alert("提(tí)示(shì)", "\"" + str + "\"", "error"); obj.value=""; obj.focus(); return false; } //验(yàn)证小(xiǎo)数(shù)点后两(liǎng)位 if ( str.indexOf(".")>=0 ) { var temp = str; if ( str.indexOf("-")>=0 ) { temp = str.substring(1,str.length); } if( !behindDot(temp,bite) ) { $.messager.alert("提示", "\"" + str + "\"小数(shù)位不能多于"+ bite+"位!", "info"); return false; } } return true; }//========================================== //功能: 只能输入(rù)有效数字(金额) //参数: //obj:输(shū)入域对象 //symbol:输入(rù)符号,有"-","."两种(zhǒng),用","分开 //bite:小数(shù)点后位数 //返回值:boolean //调用方法:在文本(běn)控(kòng)件里onblur="verifyMoney(this,'-,.',2);" //========================================== function verifyMoney(obj,symbol,bite) { if (typeof(symbol) == 'undefined') symbol = ""; if (typeof(bite) == 'undefined') bite = 2; var errInfo = "不(bú)是有效金额(é),请(qǐng)重(chóng)新输入(rù)!"; var str = trim(obj.value.toString().replace(/\,/g,"")); if (str == "") return true; try { if (!isNumber(str,symbol)) { $.messager.alert("提(tí)示", errInfo, "error"); obj.value=""; obj.focus(); return false; } if ((str).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { $.messager.alert("提(tí)示", errInfo, "error"); obj.value=""; obj.focus(); return false; } } catch (e) { $.messager.alert("提示(shì)", "\"" + str + "\""+errInfo, "error"); obj.value=""; obj.focus(); return false; } //验证小数点后两位(wèi) if ( str.indexOf(".")>=0 ) { var temp = str; if ( str.indexOf("-")>=0 ) { temp = str.substring(1,str.length); } if( !behindDot(temp,bite) ) { $.messager.alert("提示", "\"" + str + "\"小数位不能多于"+ bite+"位!", "error"); return false; } } return true; }//========================================== //功能(néng): 验证(zhèng)是否为有效数(shù)字,允许用科学计数(shù)法,即包含字母E //str:传入的(de)字符串 //symbol:输(shū)入符号,有"-","."两种,用","分开 //返回值(zhí):boolean //调用方法(fǎ):" //==========================================function isNumber(str,symbol) { var bDot = false; var bNega = false; if (typeof(symbol) == 'undefined') symbol = ""; bDot = (symbol.indexOf(".")>=0?true:false); bNega = (symbol.indexOf("-")>=0?true:false); var bFlag = true; for(var i=0;i57) { if (bDot && str.charCodeAt(i)==46) continue; if (bNega && str.charCodeAt(i)==45) continue; if (str.charCodeAt(i) == 69) continue; //字母 E,科(kē)学计数表(biǎo)示法 bFlag = false; break; } } return bFlag; } //====================================== //验(yàn)证(zhèng)小(xiǎo)数点后面(miàn)的位数是否超(chāo)过指定长(zhǎng)度(dù) //str:数(shù)字字符(fú)串 //length:小数位最大(dà)值 //====================================== function behindDot(str,length) { var re = new RegExp("^[0-9]+(.[0-9]{0,"+ length +"})?$"); return re.test(str); } //========================================== //Purpose:把(bǎ)字(zì)符串转化为整数 //参数(shù):s--要(yào)转化为整数的字符串 //返回值:转化后的整数(shù) //说明:JavaScript自带的函数对于(yú)处理数(shù)字(zì)字符(fú)串前(qián)带0或为0的有误, //如使用parseInt("0025")返(fǎn)回的并不是25,而(ér)是(shì)21,又如parseInt("0")返回并不(bú)是0,而(ér)是NaN //下面的自(zì)定义(yì)函数可以(yǐ)处(chù)理这一Bug //调用方法: //==========================================function parseMyInt(s) { var str = trim(s); if (str == "") return 0; try { for (var i=0;i maxlength){ slt.value = mContext.substr(0, maxlength); } return true; } /** * 货币转(zhuǎn)化为中文大写 * @param currencyDigits * @returns */ function toAmountUpper(currencyDigits) { //Constants: var MAXIMUM_NUMBER = 99999999999.99; // Predefine the radix characters and currency symbols for output: var CN_ZERO = "零"; var CN_ONE = "壹"; var CN_TWO = "贰"; var CN_THREE = "叁"; var CN_FOUR = "肆"; var CN_FIVE = "伍"; var CN_SIX = "陆"; var CN_SEVEN = "柒"; var CN_EIGHT = "捌"; var CN_NINE = "玖"; var CN_TEN = "拾"; var CN_HUNDRED = "佰"; var CN_THOUSAND = "仟"; var CN_TEN_THOUSAND = "万"; var CN_HUNDRED_MILLION = "亿(yì)"; var CN_SYMBOL = ""; var CN_DOLLAR = "元"; var CN_TEN_CENT = "角"; var CN_CENT = "分"; var CN_INTEGER = "整"; // Variables: var integral; // Represent integral part of digit number. var decimal; // Represent decimal part of digit number. var outputCharacters; // The output result. var parts; var digits, radices, bigRadices, decimals; var zeroCount; var i, p, d; var quotient, modulus; // Validate input string: currencyDigits = currencyDigits.toString(); if (currencyDigits == "") { return ""; } if (currencyDigits.match(/[^,.\d]/) != null) { $.messager.alert("提(tí)示", "输入的字符(fú)无效!", "error"); return ""; } if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { $.messager.alert("提示", "错误的数据格式!", "error"); return ""; } //Normalize the format of input digits: currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters. currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning. // Assert the number is not greater than the maximum number. if (Number(currencyDigits) > MAXIMUM_NUMBER) { $.messager.alert("提示", "金额(é)长度太长,请检查后重(chóng)试。", "info"); return ""; } //Process the coversion from currency digits to characters: //Separate integral and decimal parts before processing coversion: parts = currencyDigits.split("."); if (parts.length > 1) { integral = parts[0]; decimal = parts[1]; // Cut down redundant decimal digits that are after the second. decimal = decimal.substr(0, 2); } else { integral = parts[0]; decimal = ""; } // Prepare the characters corresponding to the digits: digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); decimals = new Array(CN_TEN_CENT, CN_CENT); // Start processing: outputCharacters = ""; // Process integral part if it is larger than 0: if (Number(integral) > 0) { zeroCount = 0; for (i = 0; i < integral.length; i++) { p = integral.length - i - 1; d = integral.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == "0") { zeroCount++; } else { if (zeroCount > 0) { outputCharacters += digits[0]; } zeroCount = 0; outputCharacters += digits[Number(d)] + radices[modulus]; } if (modulus == 0 && zeroCount < 4) { outputCharacters += bigRadices[quotient]; } } outputCharacters += CN_DOLLAR; } // Process decimal part if there is: if (decimal != "") { for (i = 0; i < decimal.length; i++) { d = decimal.substr(i, 1); if (d != "0") { outputCharacters += digits[Number(d)] + decimals[i]; } } } // Confirm and return the final output string: if (outputCharacters == "") { outputCharacters = CN_ZERO + CN_DOLLAR; } if (decimal == "") { outputCharacters += CN_INTEGER; } outputCharacters = outputCharacters; if (CN_SYMBOL != "") outputCharacters = CN_SYMBOL + outputCharacters; return outputCharacters; }/** * 对于float数值进(jìn)行运算 * @param c 运(yùn)算数字 * @param d 运算数字 * @param n 运(yùn)算类型(xíng) 0-加;1-减;2-乘;3-除 */ function calFloat(c,d,n){ /** * a,b 小数(shù)"字(zì)符串" * n运算(suàn)类型: 0为+ 1为- 2为乘(chéng) 3为(wéi)除 */ //去掉空相 var re = /\s/g; var a=c.replace(re,""); var b=d.replace(re,""); var cutN ="10000000000000"; var cutZero = "00000000000"; var dot="."; //将小数输(shū)入为整数 var adot = a.indexOf(dot)>0 ? a.length-a.indexOf(dot):0; var bdot = b.indexOf(dot)>0 ? b.length-b.indexOf(dot):0; var cutA = adot>0? parseInt(cutN.substr(0,adot)):1; var cutB = bdot>0? parseInt(cutN.substr(0,bdot)):1; var maxcutAB = Math.max(cutA,cutB); var mincutAB = Math.min(cutA,cutB); var cutAB = maxcutAB/mincutAB ; var numA = 0 ; var numB = 0; var inzero = cutZero.substr(0,(cutAB.toString()).length-1); var cutLen = (maxcutAB.toString()).length-1; if(adot==bdot){ numA = parseInt(a.replace(dot,""),10); numB = parseInt(b.replace(dot,""),10); } else if(adot>bdot){ numA = parseInt(a.replace(dot,""),10); numB = parseInt(b.replace(dot,"")+inzero,10); } else{ numB = parseInt(b.replace(dot,""),10); numA = parseInt(a.replace(dot,"")+inzero,10); } var numAB = "0.0"; var lastN = "0.0"; switch(n){ case 0: //加 numAB = ((numA+numB)/maxcutAB).toString(); break; case 1: //减 numAB = ((numA-numB)/maxcutAB).toString(); break; case 2: //乘(chéng) numAB = (Math.abs(numA*numB)).toString(); cutLen = cutLen*2; break; case 3: //除(chú) numAB = (numA/numB).toString(); break; } //对乘法的特别处理 if(n==2){ if (numAB.length<=cutLen){ numAB=cutZero.substr(0,cutLen-numAB.length+1)+numAB; } if(Math.abs(numA*numB) !=numA*numB ){ numAB = "-"+numAB; } numAB=numAB.slice(0,numAB.length-cutLen)+"."+numAB.slice(numAB.length-cutLen); } return parseFloat(numAB).toString(); }/** * 格式(shì)化(huà)float值(zhí),一直把最后(hòu)一个字符为(wéi)0的去掉 */ function formarFloat(fValue) { var result = ""; if (fValue) { if (fValue.indexOf(".") != -1) { while(fValue.substring(fValue.length-1,fValue.length) == "0") { fValue = fValue.substring(0, fValue.length-1); } if (fValue.substring(fValue.length-1,fValue.length) == "."){ fValue = fValue.substring(0, fValue.length-1); } } result = fValue; } return result; } var strPreObjName = ""; function keepPreData(obj) { strPreObjName = trim(obj.value); } /** * 更加工程名称转换成工程拼音简(jiǎn)写 * @param obj1 * @param obj2 */ function tranPY(obj1, obj2) { var strObjName = ""; strObjName = trim(obj1.value); //判断字符串是否有改变 if (strObjName != strPreObjName) { if (strObjName == "") { return; } var arrRslt = makePy(strObjName); if (arrRslt.length >= 1) { obj2.value = arrRslt[0]; } } }/** * 将全(quán)角转换成半(bàn)角 * 调用方式:onkeyup="CtoH(this);" * @param obj1 */ function CtoH(obj) { var str = obj.value; var result = ""; for ( var i = 0; i < str.length; i++) { if (str.charCodeAt(i) == 12288) { result += String.fromCharCode(str.charCodeAt(i) - 12256); continue; } if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375) result += String.fromCharCode(str.charCodeAt(i) - 65248); else result += String.fromCharCode(str.charCodeAt(i)); } obj.value = result; }