JavaScript

JavaScript の 面倒な 数字 / 文字列 の チェック 改善!

Kuni.W

どんなプログラミング言語でも必要な 数字 や 文字列 の チェック 。
これは、 JavaScript でも例外ではありません。
形式が違えば、データベースに対して処理が上手くいかなかったり。
思っている処理は実現できません。
共通関数にすればその手間も削減しますよね。

スポンサーリンク

文字長の妥当性チェック

データベースを使う時は必須項目になりますよね。

//引数:len_str チェックする文字列
//引数:limit 長さ最大値
//戻値:true / flase(文字数オーバ)
function isLengthValue(len_str,limit) {
   var i , cnt =0;

   //文字数カウント
   for (i=0; i < len_str.length; i++) {
      if (escape(len_str.charAt(i)).length >= 4) cnt += 2;
      else cnt++;
   }

   //上限チェック
   if (cnt > limit) return false;
   return true;
}

数字チェック

数字かどうかのチェックです。

//引数:num_str 妥当性を確認する文字
//戻値:num_str /“”(正しくない場合)
function isNumValue(num_str,len) {
   var check_str = num_str;

   if (check_str == “”) {
      return check_str;
   }

   if (type of len !== “undefined”) {
      if (check_str.length != len) {
         return “”;
      }
   }

   //
   if(isNaN(Number(chekc_str))) {
      return “”;
   } else {
      if (typeof len !== “undefined”) {
         if (check_str.length != len) {
            return “”;
         }
      }
      return check_str;
   }
}

日付チェック

日付かどうかのチェックです。

//引数:date_str 妥当性を確認する文字
//戻値:true / false → ret(本日)
function isDateValue(date_str) {
   var check = false;
   var yyyy, mm, dd, ret =“”;

   //日付だけ8桁対応
   var check_str = date_conv(date_str).substr(0,10);

   //年月日に分割
   yyyy = check_str.substr(0,4);
   mm = check_str.substr(5,2);
   dd = check_str.substr(8,2);

   //空白の時は空を返す
   if (yyyy = “”) return check;

   //引数の年月日を用いる
   dt = new Date(yyyy, mm-1, dd);

   //日にちは2桁が前提
   if (dd.length == 2 && (dt.getFullYear*() == yyyy && dt.getMonth() == mm-1 && dt.getDate() == dd)) {
      check = true;
      return check;
   } else {
      check = false;
      //実行時状況から取得
      mon = (dt.getMonth() +1) + “”;
      if (mon.length == 1) {
         mon = “0” + mon;
      }
      day = geteDate() + “”;
      if (day.length == 1) {
         day = “0” + day;
      }
      ret dt.getFullYear() + “/“ + mon + “/“ + day;
      return ret;
   }
}

時間チェック

時間かどうかのチェックです。

//引数:time_str 妥当性を確認する文字
//戻値:true / false → ret(現時刻)
function isTimeValue(time_str) {
   var check = false;
   var hh, mm, ret = “”;
   var check_str = time_str.substr(0,5);

   //時分に分割
   hh = check_str.substr(0,2);
   mm = check_str.substr(3,2);

   //空白の時は空を返す
   if (hh == “”) return check;

   //引数の年月日を用いる
   dt = new Date(2000, 01, 01, hh, mm);

   //時間は2桁が前提
   if (hh.length == 2 && mm.length == 2 && (dt.getHours() == hh && dt.getMinutes() == mm)) {
      check = true;
      return check;
   } else {
      check = false;
      //実行時状況から取得
      hour = (dt.getHours()) + “”;
      if (hour.length == 1) {
         hour = “0” + hour;
      }
      minute = geteMinutes() + “”;
      if (minute.length == 1) {
         minutes  = “0” + minute;
      }
      ret hour + “:“ + minute;
      return ret;
   }
}

まとめ

どうでしたか?意外とチェックだけでも大変ですよね。
共通して使える関数なので、便利テンプレートとして使い回しすることをお勧めします。
他にも繰り返しで実施しているようなものあれば、どんどんカスタマイズしていきましょう。

ABOUT ME
記事URLをコピーしました