/** * 空チェックを行います。 * * @param value_ * @return */ function isEmpty(value_) { return (value_ == "" || value_ == null); } /** * ブランクチェックを行います。 * * @param value_ * @return true/false */ function isBlank(value_) { if(isEmpty(value_)) { return true; } for (var i = 0; i < value_.length; i++) { switch (value_.charAt(i)){ case "\t": case "\n": case " ": break; default: return false; } } return true; } /** * 文字のサイズを返します。 * * @param value_ * @return */ function length(value_) { if(isEmpty(value_)) { return 0; } return value_.length; } /** * 文字のバイトサイズを返します。 * * @param value_ * @return */ function lengthB(value_) { if(isEmpty(value_)) { return 0; } var len = 0; var str = escape(value_); for (var i = 0; i < str.length; i++, len++) { if (str.charAt(i) == "%") { if (str.charAt(++i) == "u") { i += 3; len++; } i++; } } return len; } /** * 金額形式チェックを行います。 * * @param value_ * @return true/false */ function isCurrency(value_) { if(isEmpty(value_)) return false; for (var i = 0; i < value_.length; i++) { var _char = value_.charAt(i); if(i == 0 && _char == "-") { continue; } else { switch(_char) { case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case ",": case ".": break; default: return false; } } } return true; } /** * 半角数値形式チェックを行います。(イベントから) * * @param evt_ * @return true/false */ function isNumberKey(evt_){ var charCode = (evt_.which) ? evt_.which : evt_.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } /** * 半角数値形式チェックを行います。 * * @param value_ * @return true/false */ function isDigits(value_) { if(isEmpty(value_)) return false; var code; for (var i = 0; i < value_.length; i++) { code = value_.charAt(i).charCodeAt(0); if( 48 <= code && code <= 57 ) continue; else return false; } return true; } /** * 数値形式チェックを行います。 * * @param value_ * @return true/false */ function isNumber(value_) { if(isEmpty(value_)) return false; var code; for (var i = 0; i < value_.length; i++) { code = value_.charAt(i).charCodeAt(0); if(i==0 && code == 45) continue; else if(48 <= code && code <= 57) continue; else if(code == 44) continue; else return false; } return true; } /** * 半角形式チェックを行います。 * * @param value_ * @return true/false */ function isAscii(value_) { if(isEmpty(value_)){ return false; } return (length(value_) == lengthB(value_)); } /** * 全角形式チェックを行います。 * * @param value_ * @return true/false */ function isMultiByte(value_) { if(isEmpty(value_)) { return false; } return (length(value_)*2 == lengthB(value_)); } /** * 文字列の置き換え * * @param text_ * @param repl_ * @param with_ * @return */ function replaceAll(text_, repl_, with_) { var result = text_; while(result.indexOf(repl_) != -1){ result=result.replace(repl_, with_); } return result; } /** * 日付の加算を行います * * @param date_ * @param addDay_ * @return */ function addDate(date_, addDay_) { var date = new Date(); date.setTime(date_.getTime() + (24 * 3600 * addDay_ * 1000)); return date; } /** * 月の加算を行います。 * ただし、加算後に対応する日付が無い場合は、その月の最終日となる。 * 例: 10/31の一ヵ月後は11/30となる。 * * @param date_ * @param addMonth_ * @return */ function addMonth(date_, addMonth_) { var result = new Date(date_.getFullYear(), date_.getMonth() + addMonth_, date_.getDate()); if(date_.getDate() != result.getDate()) { result = addDate(result, -1 * (result.getDate())); } return result; } /** * 月の最終日を返します。 * * @param date_ * @return */ function lastDay(date_) { var nextMonthFirst = new Date(date_.getFullYear(), date_.getMonth() + 1, 1); return addDate( nextMonthFirst, -1); } /** * 日付のフォーマットを行います。 * * @param date_ * @param pattern_ * @return 日付(フォーマット後) */ function formatDate(date_ , pattern_) { var result = new String(pattern_); var year = date_.getFullYear(); var month=date_.getMonth()+1; var day = date_.getDate(); var houres=date_.getHours(); var minutes = date_.getMinutes(); var seconds = date_.getSeconds(); //============================================== if( pattern_.indexOf("yyyy") != -1) { result = result.replace("yyyy", year); } else if( pattern_.indexOf("yy")!=-1) { yy = new String(year).substring(2,4); result = result.replace("yy", yy); } //============================================== if( pattern_.indexOf("MM")!=-1) { if (month < 10) { month = "0" + month; } result = result.replace("MM", month); } else if( pattern_.indexOf("M")!=-1) { result = result.replace("M", month); } //============================================== if( pattern_.indexOf("dd")!=-1) { if (day < 10) { day = "0" + day; } result = result.replace("dd", day); } else if( pattern_.indexOf("d")!=-1 ) { result = result.replace("d", day); } //============================================== if( pattern_.indexOf("hh")!=-1) { if (houres < 10) { houres = "0" + houres; } result = result.replace("hh", houres); } else if( pattern_.indexOf("h")!=-1) { result = result.replace("h", houres); } //============================================== if( pattern_.indexOf("mm")!=-1) { if (minutes < 10) { minutes = "0" + minutes; } result = result.replace("mm", minutes); } else if( pattern_.indexOf("m")!=-1 ) { result = result.replace("m", minutes); } //============================================== if( pattern_.indexOf("ss")!=-1) { if (seconds < 10) { seconds = "0" + seconds; } result = result.replace("ss", seconds ); } else if( pattern_.indexOf("s")!=-1) { result = result.replace("s", seconds); } return result; } /** * 年の差分を返します * * @param baseDate_ * @param targetDate_ * @return */ function diffYear(baseDate_, targetDate_) { return targetDate_.getFullYear() - baseDate_.getFullYear(); } /** * 月の差分を返します。 * * @param baseDate_ * @param targetDate_ * @return */ function diffMonth(baseDate_, targetDate_) { var diffY =diffYear(baseDate_, targetDate_); var diffMBase = diffY * 12; var diffM = (targetDate_.getMonth() + 1) - (baseDate_.getMonth()+1); return diffMBase + diffM; } /** * 金額の形式から数値オブジェクトを生成します * * @param string_ * @return */ function curToNum(string_) { if(string_ =="") return 0; var cur =Number( replaceAll(string_,",","") ); if(isNaN(cur)) return 0; return cur; } /** * 金額のフォーマットを行います * * @param currency_ * @return */ function toCur(currency_) { if(currency_=="") return ""; var nCur = Number(replaceAll(currency_, ",", "")); if(isNaN(nCur)) { return currency_; } var currency; var minus = false; if( nCur < 0) { minus = true; currency = Math.abs(nCur).toString(10); } else{ currency = nCur.toString(10); } var dotIndex=currency.indexOf(".") ; if( dotIndex != -1) { dotIndex = currency.length - dotIndex; } else{ dotIndex = 0; } var rChar = currency.split("").reverse(); var rResult= new Array(); var tmpChar = ""; for(var i=0; i= 65 && param_.charCodeAt(i) <= 90 ) || ( param_.charCodeAt(i) >= 97 && param_.charCodeAt(i) <= 122 ) ) { } else { return false; } } return true; } /** * 判定処理(半角英数字) * * @param param_ 判定対象文字列 * @return true/false */ function isHankakuAlphAndNum(param_) { if( param_.length == 0 ){ return true; } for( i = 0; i < param_.length; i++ ){ if ( ( param_.charCodeAt(i) >= 65 && param_.charCodeAt(i) <= 90 ) || ( param_.charCodeAt(i) >= 97 && param_.charCodeAt(i) <= 122 ) || ( param_.charCodeAt(i) >= 48 && param_.charCodeAt(i) <= 57 ) ) { } else { return false; } } return true; } /** * 判定処理(片仮名) * * @param param_ 判定対象文字列 * @return true/false */ function isKatakana(param_) { startchar = 12449; endchar = 12534; expchar1 = 12540; for(i = 0;i < param_.length; i++) { if( startchar <= param_.charCodeAt(i) && param_.charCodeAt(i) <= endchar) { } else{ if (expchar1 != param_.charCodeAt(i)) { return false; } } } return true; } /** * 判定処理(平仮名) * * @param param_ 判定対象文字列 * @return true/false */ function isHiragana(param_) { startchar = 12353; endchar = 12435; expchar1 = 12540; for(i = 0;i < param_.length; i++) { if( startchar <= param_.charCodeAt(i) && param_.charCodeAt(i) <= endchar) { } else{ if (expchar1 != param_.charCodeAt(i)) { return false; } } } return true; } /** * 判定処理(半角カナ) * * @param param_ 判定対象文字列 * @return true/false */ function isHankakuKana(param_) { var flg = true; for ( i = 0 ; i < param_.length ; i++ ) { str = param_.substring(i, i+1); ret = isHankakuKanaChar(str); if (ret == false){ flg = false; } } if(flg == false){ return false; } return true; } /** * 判定処理(半角カナ(1文字)) * * @param param_ 判定対象文字 * @return true/false */ function isHankakuKanaChar(param_) { var esc_str = escape(param_); var ms = navigator.appVersion.indexOf("MSIE"); var nesc = navigator.appName.lastIndexOf("Netscape"); //一致した位置(0)を返す if(nesc >= 0){ if ( (esc_str.indexOf('%A') == 0) || (esc_str.indexOf('%B') == 0) || (esc_str.indexOf('%C') == 0) || (esc_str.indexOf('%D') == 0) ){ return true; } } else if(ms > 0){ if((esc_str.indexOf('%uFF6') == 0) || (esc_str.indexOf('%uFF7') == 0) || (esc_str.indexOf('%uFF8') == 0) || (esc_str.indexOf('%uFF9') == 0) ) { return true; } } return false; } /** * 判定処理(全角) * * @param param_ 判定対象文字列 * @return true/false */ function isZenkaku(param_) { for (var i = 0; i < param_.length; ++i) { var c = param_.charCodeAt(i); // 半角カタカナは不許可 if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) { return false; } } return true; } /** * 判定処理(時刻形式フォーマット(xx:xx形式)) * * @param param_ 判定対象文字列 * @return true/false */ function isTimeFormat(param_) { var tmp_hour; var tmp_min; var rtn_str; ar_time = new Array(); ar_time = param_.split(":"); if( ar_time.length != 2 ){ return false; } if ( ar_time[0].length == 0 ) { return false; } if ( isNaN( ar_time[0] ) ){ return false; } tmp_hour = parseInt(ar_time[0],10); if( tmp_hour < 0 || 23 < tmp_hour ){ return false; } rtn_str = tmp_hour.toString(); rtn_str += ":"; if ( ar_time[1].length == 0 ) { return false; } if ( isNaN( ar_time[1] ) ){ return false; } tmp_min = parseInt(ar_time[1],10); if( tmp_min < 0 || 60 <= tmp_min ){ return false; } return true; } /** * 判定処理(日付フォーマット(yyyy/mm/dd形式)) * * @param param_ 判定対象文字列 * @return true/false */ function isDateFormat(param_) { var Monthdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31); ar_time = new Array(); ar_time = param_.split("/"); if( ar_time.length != 3 ){ return false; } for(var i=0 ; i < 3 ; i++ ){ if( isNaN( ar_time[i] ) ){ return false; } } if( ( ( ar_time[0]%4 == 0 ) && ( ar_time[0]%100 != 0)) || ( ar_time[0]%400 == 0 ) ){ Monthdays[1] = 29; } if( ar_time[0] < 1900 || ar_time[0] > 2037 ){ return false; } if( ar_time[1] < 1 || ar_time[1] > 12 ){ return false; } if( ar_time[2] < 1 || ar_time[2] > Monthdays[ ar_time[1] - 1 ] ){ return false; } return true; } /** * 文字数取得(空白除去) * * @param param_ 文字列 * @return 文字数 */ function getRealLength(param_) { var contents_length; while(1) { contents_length = param_.length; param_ = param_.replace(' ',''); for (var i=0; i