- - PR -
JavaScriptでの正規表現(全角文字・メールアドレス)について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-03 21:13
C#にて全角文字とメールアドレスの正規表現のチェックを以下のように行っていました。
全角文字: "^[ ]*[^ -~。-゚]*[ ]*$" メールアドレス: @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" JavaScriptでも全角文字とメールアドレスの正規表現のチェックを行いたいのですが、 C#の時の正規表現を用いたり色々考えてやってみましたが、上手くいきません。 JavaScriptでは全角文字やメールアドレスの正規表現のチェックは難しいのでしょうか? どなたかお知恵を拝借したく。 よろしくお願いします。 | ||||
|
投稿日時: 2004-03-04 08:14
どういうことをやってみて、期待する結果に対して、どういう結果が返ってきましたか? MSDNに、.NETでの正規表現と、ECMA(JScript)での正規表現が出ています。それを見比べてみては? 全角文字のチェックは、過去に質問があったと思います。 ところで、MSDNにまさしく「例:電子メール形式の確認」というトピックがあるのですが、そこに上がっている形式とはずいぶん違いますが、大丈夫でした? | ||||
|
投稿日時: 2005-11-24 23:07
こんばんは。okaです。
正規表現に関してちょうど話題に上っていたので確認させてください(タイムラグはかなりありますが)。 > ところで、MSDNにまさしく「例:電子メール形式の確認」というトピックがあるのですが、そこに上がっている形式とはずいぶん違いますが、大丈夫でした? 例:電子メール形式の確認 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconexampleconfirmingvalidemailformat.htm もそうですが、 例: 入力文字列の整形 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconexamplecleaninginputstring.htm も期待通りの動きをしてくれません。 ちょっとべたべたですが、 {// "電子メール形式の確認"の場合 string target = "テスト@abcdef.or.jp"; bool ret = Regex.IsMatch(target, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); } も {// "入力文字列の整形"の場合 string target = "テスト@abcdef.or.jp"; string ret = Regex.Replace(target, @"[^\w\.@-]", "");//全角文字は取り除くと言われているのに・・・ } もだめです。 .NET Framework 1.1 SP1で試しています。 要はメールアドレスの文字としての整合性をチェックしたいだけなのですが・・・。 | ||||
|
投稿日時: 2005-11-25 08:45
「メールアドレス 正規表現」でぐぐってみてください。
完全には出来ないので「あきらかに変なのをはじく」というのが基本です(じゃないと正規アドレスまではじいてしまう)。…状態を保存するパーサーでも書けば出来ますが。 | ||||
|
投稿日時: 2005-11-25 09:00
"w+([-+.]w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-25 09:25
yaさん、レスありがとうございます。
結局「メールアドレスに一致する正規表現」にのっている、 $mailre = '^[\x01-\x7F]+@(([-a-z0-9]+\.)*[a-z]+|\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])'; を利用することにしました。 じゃんぬねっとさん、申し訳ありません。投稿の意図がわかりませんでした(ゴンザレスさんの記述とじゃんぬねっとさんの引用が既に異なっているようなので)。 | ||||
|
投稿日時: 2005-11-25 09:45
引用または引用返信画面では「\」が消えてしまうみたいですね。 投稿元と全く同じとは気付かずに返信してしまいました... (;_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-25 17:10
okaです。自己フォローです。
(メールアドレスに一致する正規表現 から) $mailre = @"^[\x01-\x7F]+@(([-a-z0-9]+\.)*[a-z]+|\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])"; と (ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconexampleconfirmingvalidemailformat.htm から) @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" の両方を使うことにしました。 というのも、「メールアドレスに一致する正規表現」だけでは’a]b@cdefg.de.jp’などがはじけなかったからです。 まぁいずれにせよ完全なものは大変そうなのでこれ以上詮索するのはやめにします。 |
1