フォームメールを送信する際に、フォームの各項目に入力されている文字をチェックすることができます。ここでは、メール送信時にメールアドレスが正しく入力されているかどうかをチェックする方法を考えてみましょう。
「送信」ボタンのクリック時に呼び出される関数「checkField()」の中に、メールアドレスを確認する関数「checkEmail()」を呼び出して送信をキャンセルすように設定を行います。
function checkField(){
if (document.Form1.customer.value == ""||document.Form1.addres.value == ""
||document.Form1.body.value == ""){
alert("必須項目が入力されていません。");
return false;
}
else if(checkEmail()){
alert("メールアドレスが正しく入力されていません。");
return false;
}
location.href="ThankYou.htm";
}「checkField」関数は、<FORM>タグの「onSubmit」で設定されている関数で、送信ボタンがクリックされた時に呼び出されます。フォームメールの送信は、「onSubmit」で設定されている関数での処理が終了してからお子なまれます。この時、関数の戻り値として「False」を返すと、フォームメールの送信をキャンセルすることができます。メールアドレスの項目に入力をした文字を調べる関数「checkEmail()」を記述します。このとき、使用されている文字をチェックする処理の関数「CheckChr(moji)」を呼び出して送信をキャンセルすように設定を行います。function checkEmail(){
adr = document.Form1.email.value
if ( adr == ""){
return true;
}
else if(adr.indexOf("@")==-1){
return true;
}
for(i=0;i<adr.length;i++){
if(CheckChr(adr.charAt(i))){
return true;
}
}
return false;
}適切な文字が使用されているかどうかをチェックする関数「CheckChr(moji)」を記述します。
function CheckChr(mozi){
if(mozi >= "0"&&mozi <= "9"){
return false;;
}
else if(mozi >= "a"&&mozi <= "z"){
return false;;
}
else if(mozi >= "A"&&mozi <= "Z"){
return false;;
}
else if(mozi == "-"||mozi == "_"||mozi == "."||mozi == "@"){
return false;;
}
return true;
}例のJAVA Scriptでは、メールアドレスとして入力された文字列からmojiを1つづつ取り出し、それが電子メールアドレスで使用される適切な文字(数字・アルファベット・記号)の組み合わせかどうかを調べています。メールアドレスとして入力された文字列から文字を1つ取り出すには、「charAt」メソッドを使用します。
「charAt」メソッドは、0から始まる数値で文字の位置をパラメータとして与えると、文字列の中の指定した位置にある文字を戻り地として返します。
文字列から文字を取り出す際には、したの表のメソッドを使用することができます。
メソッド 機能charAt 位置を指定して文字を取り出す substr 位置と文字数を指定して文字列を取り出す slice 開始位置と終了位置を指定して文字列を取り出す substring 開始位置と終了位置を指定して文字列を取り出す 電子メールのアドレスには「@」(アットマーク)が必ず1つだけ含まれていなければなりません。例では、「@」が含まれているかどうかを「indexOf」メソッドを使用して調べています。「indexOf」メソッドは、文字列の中に指定した文字が含まれない場合「-1」を戻り値として返します。
例では、「CheclChr」関数で電子メールアドレスに使用可能な文字かどうかを1文字ずつ調べています。電子メールアドレスには半角英数字と「-」「.」「_」「@」などの半角記号しか使用できないため、この関数では全角文字・半角カタカナ・「!」「#」「^」などの半角記号でエラーになるように設定しています。