javaScript常规用法B

时间:2022-10-17 01:18:57

/*
 * 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;
 }
}