//=============================================
//建立日期:2012年7月24日(rì)
//功能概述:通用函数集,供(gòng)系统(tǒng)全局调用
//调用方(fāng)法:在(zài)调(diào)用文件头引入即可,如下(xià):
//
//
//
//=============================================
//==========================================
//功(gōng)能: 去掉字符左边的空格
//输入参数:要格式(shì)化的字符串
//返回值:去掉左边空格的字符串
//调用方法
//==========================================
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;
}//==========================================
//功能: 去掉(diào)字(zì)符左(zuǒ)右边(biān)的空格
//输入(rù)参数:要格式化的字符串
//返回值:去(qù)掉(diào)左右边空格的(de)字符串
//调用方法
//==========================================function trim(str)
{
return(ltrim(rtrim(str)));
}//==========================================
//功能: 字符转为大(dà)写
//输(shū)入参数:无
//返回值:空(kōng)
//调(diào)用方法:在文本(běn)控件里onkeydown="jsUpperCase();"
//==========================================
function jsUpperCase()
{
if ((window.event.keyCode>=97) && (window.event.keyCode<=122))
window.event.keyCode = window.event.keyCode-32;
}//==========================================
//功(gōng)能(néng): 把输入的字符转为大写
//输入参数:当前对象(xiàng)
//返回(huí)值:空
//调用(yòng)方法:在文本控件(jiàn)里onblur="toUpperCase(this);"
//==========================================
function toJsUpperCase(obj)
{
try {
var s = obj.value;
if (trim(s) == "") return;
obj.value = s.toUpperCase();
} catch(e) {
}
}//==========================================
//功(gōng)能: 把输(shū)入的字符(fú)转为小写
//输入参数:无
//返(fǎn)回值:空
//调用方法:在文本控(kòng)件里onkeydown="jsLowerCase();"
//==========================================
function jsLowerCase()
{
if ((window.event.keyCode>=65) && (window.event.keyCode<=90))
window.event.keyCode = window.event.keyCode+32;
}//==========================================
//功能: 把输(shū)入(rù)的字符转为小写(xiě)
//输入参数:当前对象(xiàng)
//返(fǎn)回值:空
//调用方法:在文本(běn)控件里onblur="toJsLowerCase(this);"
//==========================================
function toJsLowerCase(obj)
{
var s = obj.value;
if (trim(s) == "") return;
obj.value = s.toLowerCase();
}
//==========================================
//功(gōng)能: 只能输入数字
//输入参数:
//obj:输入(rù)域对象
//symbol:输(shū)入(rù)符号,有"-","."两(liǎng)种,用","分(fèn)开
//bite:小数点后(hòu)面位数(shù),默认2位
//返回(huí)值:空
//调用方法:在文本控件里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) //允许输入负号
{
//只能第一位为负(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) //允许(xǔ)输(shū)入小数点
{
//只能输入一(yī)个小(xiǎo)数点
if (str.indexOf(".")>=0 && window.event.keyCode == 46)
{
window.event.returnValue = false;
return;
}
}
//验(yàn)证小数(shù)点(diǎn)后两位(wèi)
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ū)入参(cān)数:negative 是否允许输入负数,true:允(yǔn)许输(shū)入负数,false:不允(yǔn)许,默认:false
//返(fǎn)回值:空
//调(diào)用方法:在(zài)文本(běn)控件里onkeypress="typeInteger(this,false);"
//==========================================
function typeInteger(obj,negative)
{
if (typeof(negative) == 'undefined') negative = false;
typeNumber(obj,(negative==true?"-":""));
}//==========================================
//功能: 只能输(shū)入浮点数
//参数:
//obj,输入域对象
//negative:是否(fǒu)允许输入负数,true:允许输入负数,false:不允许,默认:false
//返回值(zhí):空
//调用方法:在(zài)文本(běn)控件里onkeypress="typeFloat(this,false);"
//==========================================
function typeFloat(obj,negative)
{
if (typeof(negative) == 'undefined') negative = false;
typeNumber(obj,(negative==true?"-,.":"."));
}//==========================================
//功能: 只能输入整数(shù)
//参数:当前(qián)对象
//返回值:boolean
//调用方(fāng)法:在文本控件里onblur="verifyInteger(this);"
//==========================================
function verifyInteger(obj,negative)
{
if (typeof(negative) == 'undefined') negative = false;
verifyNumber(obj,(negative==true?"-":""));
}//==========================================
//功能: 只能输(shū)入浮点(diǎn)数
//参数(shù):当(dāng)前对象
//返回值:boolean
//调用(yòng)方法(fǎ):在文(wén)本(běn)控件里onblur="verifyFloat(this);"
//==========================================
function verifyFloat(obj,negative)
{
if (typeof(negative) == 'undefined') negative = false;
verifyNumber(obj,(negative==true?"-,.":"."));
}//==========================================
//功能: 只能输入有(yǒu)效数(shù)字
//参数:
//obj:输入(rù)域对象
//symbol:输入(rù)符号,有(yǒu)"-","."两种(zhǒng),用","分开
//bite:小(xiǎo)数点后位数
//返(fǎn)回值(zhí):boolean
//调用方法:在文本控件里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 = "不是有效的(de)数(shù)字!\n\n请重新输入!";
var str = trim(obj.value);
if (str == "") return true;
try
{
if (!isNumber(str,symbol))
{
$.messager.alert("提示", "\"" + str + "\""+errInfo, "error");
obj.value="";
obj.focus();
return false;
}
}
catch (e)
{
$.messager.alert("提(tí)示", "\"" + str + "\"", "error");
obj.value="";
obj.focus();
return false;
}
//验证小数点后(hòu)两位
if ( str.indexOf(".")>=0 ) {
var temp = str;
if ( str.indexOf("-")>=0 ) {
temp = str.substring(1,str.length);
}
if( !behindDot(temp,bite) ) {
$.messager.alert("提示", "\"" + str + "\"小数位不(bú)能多于"+ bite+"位!", "info");
return false;
}
}
return true;
}//==========================================
//功能: 只(zhī)能输(shū)入有效数字(金额)
//参数(shù):
//obj:输(shū)入域对象
//symbol:输入符号,有"-","."两(liǎng)种,用","分(fèn)开
//bite:小数点后(hòu)位数
//返回值:boolean
//调用方(fāng)法:在文本控件里onblur="verifyMoney(this,'-,.',2);"
//==========================================
function verifyMoney(obj,symbol,bite)
{
if (typeof(symbol) == 'undefined') symbol = "";
if (typeof(bite) == 'undefined') bite = 2;
var errInfo = "不是有效金额,请重新(xīn)输入!";
var str = trim(obj.value.toString().replace(/\,/g,""));
if (str == "") return true;
try
{
if (!isNumber(str,symbol))
{
$.messager.alert("提示", 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("提示", errInfo, "error");
obj.value="";
obj.focus();
return false;
}
}
catch (e)
{
$.messager.alert("提示", "\"" + str + "\""+errInfo, "error");
obj.value="";
obj.focus();
return false;
}
//验证小(xiǎo)数点(diǎn)后两位
if ( str.indexOf(".")>=0 ) {
var temp = str;
if ( str.indexOf("-")>=0 ) {
temp = str.substring(1,str.length);
}
if( !behindDot(temp,bite) ) {
$.messager.alert("提(tí)示", "\"" + str + "\"小数位(wèi)不能多于"+ bite+"位!", "error");
return false;
}
}
return true;
}//==========================================
//功(gōng)能: 验证是否为(wéi)有效(xiào)数字,允许用(yòng)科学计数(shù)法,即包含字母(mǔ)E
//str:传入的字符(fú)串
//symbol:输入符(fú)号,有"-","."两种(zhǒng),用","分开
//返回值:boolean
//调(diào)用方法:"
//==========================================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ē)学(xué)计数表示法
bFlag = false;
break;
}
}
return bFlag;
}
//======================================
//验(yàn)证小数点后面的位数是否超过(guò)指定长度
//str:数字字符串
//length:小数位最大值
//======================================
function behindDot(str,length) {
var re = new RegExp("^[0-9]+(.[0-9]{0,"+ length +"})?$");
return re.test(str);
}
//==========================================
//Purpose:把(bǎ)字符(fú)串转化为(wéi)整数
//参数:s--要转化为整数的字符串
//返(fǎn)回值:转化(huà)后的整数(shù)
//说明(míng):JavaScript自带的函数(shù)对于(yú)处理(lǐ)数(shù)字(zì)字符串前带0或为0的(de)有误,
//如使用(yòng)parseInt("0025")返回的并(bìng)不是(shì)25,而是21,又如(rú)parseInt("0")返(fǎn)回并不是0,而(ér)是(shì)NaN
//下面(miàn)的自定(dìng)义函数可以(yǐ)处(chù)理这一(yī)Bug
//调(diào)用方(fāng)法(fǎ):
//==========================================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)化为(wéi)中文大写
* @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 = "仟(qiān)";
var CN_TEN_THOUSAND = "万";
var CN_HUNDRED_MILLION = "亿";
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("提示(shì)", "输入的字(zì)符(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("提(tí)示(shì)", "金额长度太长,请(qǐng)检查(chá)后重试。", "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)行运(yùn)算
* @param c 运算数字
* @param d 运算数字(zì)
* @param n 运算类型 0-加(jiā);1-减;2-乘;3-除
*/
function calFloat(c,d,n){
/**
* a,b 小数(shù)"字符串"
* n运算类(lèi)型: 0为+ 1为(wéi)- 2为乘 3为除(chú)
*/
//去掉空相(xiàng)
var re = /\s/g;
var a=c.replace(re,"");
var b=d.replace(re,""); var cutN ="10000000000000";
var cutZero = "00000000000"; var dot="."; //将小数输入为整数 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: //乘
numAB = (Math.abs(numA*numB)).toString();
cutLen = cutLen*2;
break; case 3: //除
numAB = (numA/numB).toString();
break;
}
//对乘法的(de)特别(bié)处理
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ì)化float值,一直把最后一(yī)个(gè)字符为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);
}
/**
* 更加工程名称转换成工程(chéng)拼音简(jiǎn)写
* @param obj1
* @param obj2
*/
function tranPY(obj1, obj2) {
var strObjName = "";
strObjName = trim(obj1.value); //判断(duàn)字符串(chuàn)是否有改变(biàn)
if (strObjName != strPreObjName) {
if (strObjName == "") {
return;
} var arrRslt = makePy(strObjName);
if (arrRslt.length >= 1) {
obj2.value = arrRslt[0];
}
}
}/**
* 将全角转换(huàn)成半(bàn)角
* 调(diào)用方式: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;
}