您的位置:首页 > Web前端 > JavaScript

javaScript常规用法B

2007-03-25 20:06 337 查看
/*
* 4_1 ���l�t�H�[�}�b�g�i�R���}���t�����j
* ���������p�������C�x���g�F�����������onblur������
*/
function formatNumeric(obj, integerLen, decimalLen, minusStatus, roundStatus, decimalZeroStatus) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);
if (isBlankOrNull(objValue)) {
return objValue;
}
var strNumeric = eraseComma(objValue);
if (isNumber(strNumeric) == false) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
if (minusStatus == MINUS_OFF && parseFloat(strNumeric) < 0) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var mark = "";
var strInteger = "";
var strDecimal = "";
if (strNumeric.indexOf("-") != -1) {
mark = "-";
strNumeric = strNumeric.substring(1);
} else if (strNumeric.indexOf("+") != -1) {
strNumeric = strNumeric.substring(1);
}
strNumeric = trimZeros(strNumeric, L_ZERO);
var dotPos = strNumeric.indexOf(".", 0);
if (dotPos > 0) {
strInteger = strNumeric.substring(0, dotPos);
strDecimal = strNumeric.substring(dotPos + 1);
} else if (dotPos == 0) {
strInteger = "0";
strDecimal = strNumeric.substring(dotPos + 1);
} else {
if (strNumeric != "") {
strInteger = strNumeric;
} else {
strInteger = "0";
}
strDecimal = "";
}
var strIntegerLen = strInteger.length;
if (strIntegerLen > integerLen) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var strDecimalLen = strDecimal.length;
if (strDecimalLen > decimalLen) {
if (roundStatus == ROUND_HALF_UP || roundStatus == ROUND_UP) { // �l�������@�����@��������
var val1 = "";
var val2 = "";
val1 = strDecimal.substring(0, decimalLen);
val2 = "0." + strDecimal.substring(decimalLen, decimalLen + 1);
if (roundStatus == ROUND_HALF_UP) { // �l������
val2 = Math.round(val2);
} else { // ��������
if (val2 == "0.0") {
val2 = 0;
} else {
val2 = 1;
}
}
strDecimal = addString(val1, val2.toString());
if (strDecimal.length > decimalLen && parseFloat(strDecimal) != "0") { // �v�Z������������������������
strDecimal = strDecimal.substring(1);
strInteger = addString(strInteger, "1");
if (strInteger.length > integerLen) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
}
if (decimalLen == 0) {
strDecimal = "";
}
if (decimalZeroStatus == DECIMAL_ZERO_OFF) {
strDecimal = trimZeros(strDecimal, R_ZERO);
}
} else if (roundStatus == ROUND_DOWN) { // ��������
strDecimal = strDecimal.substring(0, decimalLen);
if (decimalZeroStatus == DECIMAL_ZERO_OFF) {
strDecimal = trimZeros(strDecimal, R_ZERO);
}
} else if (roundStatus == ROUND_OFF) { // ���������
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
} else {
if (decimalZeroStatus == DECIMAL_ZERO_OFF) {
strDecimal = trimZeros(strDecimal, R_ZERO);
} else if (decimalZeroStatus == DECIMAL_ZERO_ON) {
for (var i = 0; i < decimalLen - strDecimalLen; i++) {
strDecimal = strDecimal + "0";
}
}
}
strInteger = addComma(strInteger);
if (strDecimal.length > 0 && parseFloat(strDecimal) == 0 && strInteger == "0") {
mark = "";
}
if (strDecimal.length > 0) {
strDecimal = "." + strDecimal;
} else if (strInteger == "0") {
mark = "";
}
var result = mark + strInteger + strDecimal;
setFieldColor(obj, NORMAL_COLOR);
return result;
}

/*
* 4_2 ���z�A���t�H�[�}�b�g�i�R���}���O���j
* ���������p�������C�x���g�F�����������onfocus������
*/
function unformatNumeric(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return objValue;
}
return eraseComma(objValue);
}

/*
* 4_3 �N�����t�H�[�}�b�g�i�t���b�V�����t�����j
* ���������p�������C�x���g�F�����������onblur������
*/
function formatYmd(obj, permitStatus) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);
if (isBlankOrNull(objValue)) {
return objValue;
}
var strDate = eraseYmdSlash(objValue);
if (isNumber(strDate) == false) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
if (strDate.length != 8 ) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var checkRslt = false;
switch (permitStatus) {
case DATE_PERMIT_0 :
if ("00000000" == strDate) {
checkRslt = true;
}
break;
case DATE_PERMIT_9 :
if ("99999999" == strDate) {
checkRslt = true;
}
break;
case DATE_PERMIT_09 :
if ("00000000" == strDate || "99999999" == strDate) {
checkRslt = true;
}
break;
default :
break;
}
var result = "";
if (checkRslt) {
result = strDate.substring(0, 4) + "/"
+ strDate.substring(4, 6) + "/"
+ strDate.substring(6, 8);
} else {
var year = strDate.substring(0, 4);
var month = strDate.substring(4, 6);
var intMonth = parseInt(month, 10);
if (intMonth < 1 || intMonth > 12) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var day = strDate.substring(6, 8);
var intDay = parseInt(day, 10);
var lastDay = getLastDay(year, month);
if (intDay < 1 || intDay > parseInt(lastDay, 10)) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
result = year + "/" + month + "/" + day;
}
setFieldColor(obj, NORMAL_COLOR);
return result;
}

/*
* 4_4 �N�����A���t�H�[�}�b�g�i�X���b�V�����O���j
* ���������p�������C�x���g�F�����������onfocus������
*/
function unformatYmd(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return objValue;
}
return eraseYmdSlash(objValue);
}

/*
* 4_5 �N���t�H�[�}�b�g�i�t���b�V�����t�����j
* ���������p�������C�x���g�F�����������onblur������
*/
function formatYm(obj, permitStatus) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);
if (isBlankOrNull(objValue)) {
return objValue;
}
var strDate = eraseYmSlash(objValue);
if (isNumber(strDate) == false) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
if (strDate.length != 6 ) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var checkRslt = false;
switch (permitStatus) {
case DATE_PERMIT_0 :
if ("000000" == strDate) {
checkRslt = true;
}
break;
case DATE_PERMIT_9 :
if ("999999" == strDate) {
checkRslt = true;
}
break;
case DATE_PERMIT_09 :
if ("000000" == strDate || "999999" == strDate) {
checkRslt = true;
}
break;
default :
break;
}
var result = "";
if (checkRslt) {
result = strDate.substring(0, 4) + "/"
+ strDate.substring(4, 6);
} else {
var year = strDate.substring(0, 4);
var month = strDate.substring(4, 6);
var intMonth = parseInt(month, 10);
if (intMonth < 1 || intMonth > 12) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
result = year +"/" + month;
}
setFieldColor(obj, NORMAL_COLOR);
return result;
}

/*
* 4_6 �N���A���t�H�[�}�b�g�i�X���b�V�����O���j
* ���������p�������C�x���g�F�����������onfocus������
*/
function unformatYm(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return objValue;
}
return eraseYmSlash(objValue);
}

/*
* 4_7 �����b�t�H�[�}�b�g�i�R�������t�����j
* ���������p�������C�x���g�F�����������onblur������
*/
function formatHms(obj) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);
if (isBlankOrNull(objValue)) {
return objValue;
}
var strHms = eraseHmsColon(objValue);
if (isNumber(strHms) == false) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
if (strHms.length != 6 ) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var hh = strHms.substring(0, 2);
if (parseInt(hh, 10) > 23) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var mm = strHms.substring(2, 4);
if (parseInt(mm, 10) > 59) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var ss = strHms.substring(4, 6);
if (parseInt(ss, 10) > 59) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var result = hh + ":" + mm + ":" + ss;
setFieldColor(obj, NORMAL_COLOR);
return result;
}

/*
* 4_8 �����b�A���t�H�[�}�b�g�i�R�������O���j
* ���������p�������C�x���g�F�����������onfocus������
*/
function unformatHms(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return objValue;
}
return eraseHmsColon(objValue);
}

/*
* 4_9 �����t�H�[�}�b�g�i�R�������t�����j
* ���������p�������C�x���g�F�����������onblur������
*/
function formatHm(obj) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);
if (isBlankOrNull(objValue)) {
return objValue;
}
var strHm = eraseHmColon(objValue);
if (isNumber(strHm) == false) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
if (strHm.length != 4 ) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var hh = strHm.substring(0, 2);
if (parseInt(hh, 10) > 23) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var mm = strHm.substring(2, 4);
if (parseInt(mm, 10) > 59) {
setFieldColor(obj, ERROR_COLOR);
return objValue;
}
var result = hh + ":" + mm;
setFieldColor(obj, NORMAL_COLOR);
return result;
}

/*
* 4_10 �����A���t�H�[�}�b�g�i�R�������O���j
* ���������p�������C�x���g�F�����������onfocus������
*/
function unformatHm(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return objValue;
}
return eraseHmColon(objValue);
}

/*
* 4_11 �[���p�f�B���O
* ���������p�������C�x���g�F�����������onblur������
*/
function paddingZero(obj, scale) {
var objValue = trimSpaces(obj.value, LR_SPACE, H_SIZE);

if (isBlankOrNull(objValue) || isBlankOrNull(scale)) {
return objValue;
}
var result = String(objValue);
while (result.length < scale) {
result = String( "0" ) + result;
}
return result;
}

/*
* 4_12 �������X�y�[�X�i���p�j����
* ���������p�������C�x���g�F�����������onblur������
*/
function trimHalfSpaces(obj) {
var objValue = obj.value;
if (isBlankOrNull(objValue)) {
return "";
}
return trimSpaces(objValue, LR_SPACE, H_SIZE);
}

////////////////////////////////////////�����p���/�b�h�@��������////////////////////////////////////////

/*
* ������String�^�C�v��������Number���������u+�v�������s���i�l�����������p�j
* �������Astr2���Q�����������������������y�����p�A�O�����p�����������������z
*/
function addString(str1, str2) {
var result = "";
var len = str1.length;
if (len == 0) {
return str2;
}
if (str2.length > 2) {
return str1;
}
if (len == 1) {
result = parseFloat(str1) + parseFloat(str2);
return result.toString();
}
result = parseFloat(str1.substring(len - 1)) + parseFloat(str2);
result = result.toString();
if (result.length >= 2) {
return addString(str1.substring(0, len - 1), "1") + result.substring(1);
}
return str1.substring(0, len - 1) + result;
}

/*
* ##,### �� #####�������y�����p�A�O�����p�����������������z
*/
function eraseComma(str) {
str = String(str);
var arr = str.split(".");
var len = arr.length;
if (arr[0].match(/^-?/d{1,3}(,/d{3})*$/)) {
arr[0] = arr[0].replace( /,/g, "" );
str = arr[0];
for (var i = 1; i < len; i++) {
str = str + "." + arr[i];
}
}
return str;
}

/*
* ##### �� ##,###�������y�����p�A�O�����p�����������������z
*/
function addComma(str) {
var len = str.length;
if (len <= 3) {
return str;
}
return addComma(str.substring(0, len - 3)) + "," + str.substring(len - 3);
}

/*
* YYYY/MM/DD �� YYYYMMDD�������y�����p�A�O�����p�����������������z
*/
function eraseYmdSlash(str) {
str = String(str);
if (str.match(/^/d{4}///d{2}///d{2}$/)) {
return str.replace(////g, "");
} else {
return str;
}
}

/*
* YYYY/MM �� YYYYMM�������y�����p�A�O�����p�����������������z
*/
function eraseYmSlash(str) {
str = String(str);
if (str.match(/^/d{4}///d{2}$/)) {
return str.replace(////g, "");
} else {
return str;
}
}

/*
* HH:MM:SS �� HHMMSS�������y�����p�A�O�����p�����������������z
*/
function eraseHmsColon(str) {
str = String(str);
if (str.match(/^/d{2}:/d{2}:/d{2}$/)) {
return str.replace(/:/g, "");
} else {
return str;
}
}

/*
* HH:MM �� HHMM�������y�����p�A�O�����p�����������������z
*/
function eraseHmColon(str) {
str = String(str);
if (str.match(/^/d{2}:/d{2}$/)) {
return str.replace(//:/g, "");
} else {
return str;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: