[JavaScript超初心者向け]時刻の文字列の変換やチェックをする関数

フォームの入力チェックは、最近はjQueryなどで簡単に確認出来ちゃったりするので、以前よりも必要性が薄くなってきました。

ただ、そういうのを一切使えない状態で入力チェックをしなければならないこともあり(私自身ごく最近ありました)、そういった時に困っちゃいますよね。

というわけで、超初心者向けに日付を変換したりチェックしたりするコードをいくつか。

全角文字を半角に変換

まず最初に、全角で入力された時刻の文字列を半角にする関数です。『:』(全角コロン)も半角に変換します。

function TimeZen2Han(str){
str += '';
var list = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,":":":"};
while(str.match(/[0-9:]/)){
for(n in list){
str = str.replace(n, list[n]);
}
}
return str;
}

『str += ”;』は、引数を確実に文字列として認識させるためのものです。基本的には、引数は『11:00』であり、文字列として認識されるはずですが、念のため。

時刻の形式のチェック

時刻が『11:00』という形式になっているかどうかの確認です。

function isTimeType(str) {
if(!str.match(/^\d{1,2}\:\d{2}$/)){
return false;
}
return true;
}

単純に正規表現で確認しているだけです。時が3桁だったり、分が2桁以外だったりするとfalseが返ります。

午前午後表記の時刻の正当性チェック

時が0~11、分が0~59の範囲内であるかどうかの確認です。上記2つの関数は、引数を『str』としており、『11:00』というような文字列を想定しています。が、こちらは『h』(時)、『m』(分)と分かれているのに要注意。

function isValidAMPMTime(h,m) {
if(h < 0 || h > 11 || m < 0 && m > 59){
return false;
}
return true;
}

単純過ぎてあまり書いた意味なかったかも。ちなみに、引数を『str』としたい場合には、以下のようにsplit関数を使います。

function isValidAMPMTime(str) {
var array = str.split(":");
if(array[0] < 0 || array[0] > 11 || array[1] < 0 && array[1] > 59){
return false;
}
return true;
}

24時間表記の時刻の正当性チェック

こちらは上記の24時間表記版です。まず引数が『h』『m』形式の場合。

function isValid24Time(h,m) {
if(h < 0 || h > 23 || m < 0 && m > 59){
return false;
}
return true;
}

引数を『str』とした場合。

function isValid24Time(str) {
var array = str.split(":");
if(array[0] < 0 || array[0] > 23 || array[1] < 0 && array[1] > 59){
return false;
}
return true;
}

26時とか言われるのは想定していないので、その場合には『array[0] > 23』という部分の数値を『array[0] > 27』と変えれば良いですね。

まとめ

本当に簡単なことしかしていません。せいぜい正規表現が出てきたくらいでしょうか。ただ、それすら単純にしか使っていません。

というわけで、超初心者向けということでご了承ください。

また、ここでは書いていませんが、午前午後表記と24時間表記の変換もいずれ。

スポンサードリンク

twitterまたはFacebookでもコメントして頂けます