人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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;
}

●質問者: yashio
●カテゴリ:政治・社会 ゲーム
✍キーワード:Focus JavaScript STR かめ ソース
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● aki73ix
●20ポイント

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¥-¥_]+$

になっていますね


2 ● andi
●20ポイント

http://www.din.or.jp/~ohzaki/perl.htm#Mail

Perlメモ

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


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


3 ● english
●20ポイント

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に渡すメールアドレスにコマンドが含まれていると、とんでもないことになりますので・・・。


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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ