javascriptにおいてメールアドレスを

チェックしたいのですが、自分が使って
いたソースですと、ハイフンなどの記号が
チェックされてしまい完全にチェック出来ません。
なにかいい方法があれば教えて下さい。
ちなみにこんなソースです。
str = form1.email.value;
var tmp = str.match(”^[0-9A-Za-z._]+@[0-9A-Za-z.]+$”);
if (tmp != str){
alert(’ご入力頂いたメールアドレスに誤りがあります。¥nもう一度お確かめの上、ご登録ください。’);
document.form1.email.focus()
return false;
}

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/07 17:50:10
  • 終了:--

回答(3件)

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272005/06/07 18:07:56

ポイント20pt

http://chaichan.hp.infoseek.co.jp/qa0001/qa417.htm

�t�H�[�����̃��[���A�h���X�̓��͊m�F

var tmp = str.match(”^[0-9A-Za-z._¥-]+@[0-9A-Za-z.¥-]+$”);


のように半角で ”¥-”を入れるとメールアドレスにハイフンが入っていてもOKになります


このサイトを見ると

^[0-9a-zA-Z¥-¥_]+@[0-9a-zA-Z¥-¥_¥.]+¥.[0-9a-zA-Z¥-¥_]+$

になっていますね

id:andi No.2

andi回答回数448ベストアンサー獲得回数02005/06/07 18:08:42

ポイント20pt

メールアドレスを真面目に正規表現でチェックするとリンク先のように結構面倒ですので、ある程度で妥協が必要になります(妥協点は人それぞれです)。


ちなみにハイフンを許可したい場合は¥-と、-をエスケープしてあげれば良いかと思います。

id:english No.3

english回答回数304ベストアンサー獲得回数02005/06/07 18:27:47

ポイント20pt

http://www.ipa.go.jp/security/awareness/vendor/programming/index...

IPA ISEC セキュア・プログラミング講座

hatenaのシステムにより、クォテーションや円マークが全角に変換されてしまっていると思いますが、適宜読み替えて読んでください。


-----------------

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>

<title>メールアドレス・チェック</title>

<script type=”text/javascript”>

<!--

function checkEmail(){

str = form1.email.value;

var tmp = str.match(”^[0-9A-Za-z._-]+@[0-9A-Za-z.-]+$”);

if (tmp != str){

alert(’ご入力頂いたメールアドレスに誤りがあります。¥nもう一度お確かめの上、ご登録ください。’);

document.form1.email.focus()

return false;

} else {

alert(”正しいです。”);

}

}

//-->

</script>

</head>

<body>

<form name=form1>

<input type=text name=email size=50><input type=button onClick=”checkEmail();” value=”チェック”>

</form>

</body>

</html>

-----------------------------------

のように、単純に「-」を追加するだけで、ハイフンのあるメールアドレスも引っかからなくなります。


また、念のためではありますが、メールアドレスをJavascriptでチェックするのは、ユーザーの入力ミスを確認画面まで行かずとも行うという意味で、ユーザビリティー向上という観点から、意味のあることですが、必ずサーバサイドのプログラム(CGIやPHPなど)でのチェックも行ってください。


そうでないと、思わぬセキュリティホールになります。特にsendmailに渡すメールアドレスにコマンドが含まれていると、とんでもないことになりますので・・・。


質問の趣旨からは離れていますし、既知のことだったら、たいへんおせっかいな話ですが、念のため。お許しください。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません