[Codeigniter-users] CI_Form_validation.php のメールアドレス検証の正規表現

Back to archive index

Toshihiro Karakane karak****@karak*****
2011年 3月 3日 (木) 00:00:26 JST


安藤さん、Kenjiさん、

回答ありがとうございます。

確かに、RFCに忠実に正規表現で表現しようとすると難しいかと思います。
ただ実際に利用されているメールアドレスで検証に引っかかってしまったため、
そのようなケースの場合でも検証は成立する必要があるだろうと思っていました。


>> 前述の正規表現では抜け落ちる記号が結構あり、アンダースコアなど本当に実際に利用されそうな文字
>> では検証に失敗してしまいます。
>
> 例えば、どんなメールアドレスでしょうか?
>

失礼しました。ごめんなさい。この条件だとアンダースコアは動作しますね。
今のところ、確認できているのは、 'kara?kani****@examp*****' や、
'kara^_^kani****@examp*****'のようなアドレスです。
それぞれ '?' と '^' が含まれるアドレスで、携帯メールアドレスで
多いようです。(古いJ-Phoneなどのアドレスがあるようです。)


> 今まで不具合と報告されたことはないということだと思いますので、
> とくに実際問題は生じていないということかと思います。

確かに、先ほどgmail、hotmail、yahoo.comと調べてみましたが、
これらの記号を使っているのは日本の携帯メールアドレス
だけなのかもしれないですね…

ということで、ローカルのみ修正を行うかもしれません。




> バグであることが確実なら Bitbucket のトラッカーに投稿してください。
> そのほうが修正される可能性が高いと思います。
>
> もし、patch などコードを書く場合は、
>
> https://bitbucket.org/ellislab/codeigniter/wiki/Taking%20part%20into%20the%20CodeIgniter%20Development
>
> を参照してください。

ありがとうございます。 参考になります。
が、ご指摘の通り、特殊な記号は私が思ったほど使われていないようですので、
今のところ不具合として提出するのに躊躇せざるを得ません。
→ 実際、本当に入力値誤りがある場合には弾かれた方がよいでしょうし…



2011年3月2日19:43 Kenji Suzuki <kenji****@gmail*****>:
> Kenji です。
>
>
> On Wed, 2 Mar 2011 18:40:57 +0900
> Toshihiro Karakane <karak****@karak*****> wrote:
>
>> はじめまして。
>>
>> 唐金と申します。
>
> ごきげんよう。
>
>
>> CodeIgniterを利用しているのですが、メールアドレスの正規表現が正しくないのではないか
>> と思うのですが、この問題について事情をご存じの方はいらっしゃいませんか?
>>
>> 具体的には、CI_Form_validationの中のメールアドレスの正規表現は次の用になっています。
>>
>>    "/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"
>>
>> 一方で、メールアドレスに利用可能な文字は、
>>
>>    - 半角英数字(大文字小文字)
>>    - ! # $ % & ' * + - / = ? ^ _ ` { | } ~
>>    - .(先頭と末尾以外で使用可能。2個以上連続してはならない)
>>    (→ 参照先: http://ja.wikipedia.org/wiki/メールアドレス 関連するRFC文書を参照しても同様)
>>
>> となっています。
>>
>> 前述の正規表現では抜け落ちる記号が結構あり、アンダースコアなど本当に実際に利用されそうな文字
>> では検証に失敗してしまいます。
>
> 例えば、どんなメールアドレスでしょうか?
>
>
>> この問題は比較的容易に指摘されそうだと思ったので公式サイトのバグトラッカー、フォーラムを
>> 参照したのですが、それらしき記述は見つかりませんでした。
>>
>> これって不具合に該当すると思うのですが、どうなんでしょうか?
>
> 今まで不具合と報告されたことはないということだと思いますので、
> とくに実際問題は生じていないということかと思います。
>
> もちろん、厳密に RFC に準拠した形式をチェックするものでは
> ありませんが。
>
>
>> # ところで、バグをレポートする場所ってbitbucketのトラッカーなのでしょうか? フォーラムなのでしょうか?
>> # ご存知のかたいらっしゃれば教えていただければと思います。
>
> バグであることが確実なら Bitbucket のトラッカーに投稿してください。
> そのほうが修正される可能性が高いと思います。
>
> もし、patch などコードを書く場合は、
>
> https://bitbucket.org/ellislab/codeigniter/wiki/Taking%20part%20into%20the%20CodeIgniter%20Development
>
> を参照してください。
>
>
> // Kenji
>
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>




Codeigniter-users メーリングリストの案内
Back to archive index