- ベストアンサー
フォームのチェック
こんにちは、フォームのチェックについて質問です。 ジャバスクリプトで、電話番号は(xxx)xxx-xxxxという形で、メールアドレスはxxx@xxxxx.xx か xxxx@xxxx.xxxという形で入力しなければアラーとが出るように設定したいのですが、どうしたらよいでしょうか?電話番号の方は数字と()が1番目と5番目、-が9番目に来るよう。メールアドレスは、@からは始まらない、@のあとでは、.があるが、.は後ろから2番目または3番目じゃなくてはいけない、というように設定したいのです。ちょっと説明がややこしくなりましたが、お願いします!!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
電話番号を入力するところを <input type="text" name="tel" onChange="checkform(this)"> として、メールアドレスを入れるところを <input type="text" name="mail" onChange="checkform(this)"> function checkform(formobj){ var formname; var inputedform; var formformat; formname=formobj.name; inputedform = formobj.value; if(formname == "tel"){ formformat = /^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$/; }else if(formname == "mail"){ formformat = /^[0-9a-z_\-]+@[0-9a-z_\-\.]+\.[a-z]{2,3}$/i; } var icchi = formformat.test(inputedform); if(!icchi){ if(inputedform != ""){ alert("入力が間違っています。"); formobj.value=""; } } } としてみてくだだい。 メールアドレスについてはあまり書いてないので勝手に半角英数字-_にしましたがひょっとして全角文字とかも入れてよかったのでしょうか? あと市外局番が3桁で市内局番も3桁は全国共通じゃないけどそれいいのでしょうか?もし、電話番号をもうちょっと広くとると。 formformat = /^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$/; を formformat = /^\([0-9]{2,5}\)[0-9]{1,4}-[0-9]{4}$/; とすればいいと思います。(テストしていません。)
その他の回答 (2)
- shige_70
- ベストアンサー率17% (168/946)
正規表現を利用するのがよいと思います。 例: function check_mailaddr(str) { var rx_mail = new RegExp('^[-_.A-Za-z0-9]+@[-_.A-Za-z0-9]+$') ; if ( rx_mail.exec(mailaddr) ) { /* OK */ } else { /* NG */ } } ところで、電話番号ですけど、")"は5文字目だけではなく、4~7文字目に来る可能性があるはずですけど、大丈夫ですか?
電話番号チェックはこちら↓ http://www.openspc2.org/reibun/javascript/regexp/006/index.html >電話番号の方は数字と()が1番目と5番目 市外局番が4桁及び5桁の場合はどうするのでしょう? メールアドレスチェックはこちら↓ http://www.openspc2.org/reibun/javascript/regexp/010/index.html