ASPARA

Sep 18

“桜田門外で脱藩した水戸藩士たちにより銃撃を受けた後
乗っていた籠越しに何度も何度も刀で突き刺され瀕死になったところを引き摺り出されて首を落とされ
急病を発症し4日後病死した模様”
【訃報】井伊直弼、病死 - アルファルファモザイク (via darylfranz)

(via darylfranz)


記事を書くにあたって、メールアドレスについてのRFCや関連記事をざっと調べてみました。

結果、どういったバリデーションチェックがよいのか落としどころがみつかってませんが、単純にJavaScriptで正規表現を使って動くものを作ってみたいと思っただけなので、ゆるいチェック(現実的)とややきびしいチェックの2つに対応させてみました。

1.メールアドレスチェッカー

下記のフォームからモードを選択し、メールアドレスを入力して「チェック」をクリックすれば検証結果を表示します。

ゆるい(現実的) きびしい

結果:

ゆるい方のチェックは次のとおりです(抜粋)。

$(function(){
    $('#check').click(function(){
        var address = $('#address').val();
        if (address.match(/^[^@]+@.+\..+$/)) {
            $('#result').text("OK");
        } else {
            $('#result').text("NG");
        }
    });
});

きびしい方のコードは次のとおりです(抜粋)。

$(function(){
    $('#check').click(function(){
        var address = $('#address').val();
        if (address.match(/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i)) {
            $('#result').text("OK");
        } else {
            $('#result').text("NG");
        }
    });
});

きびしい方のチェックで用いている正規表現は、「Comparing E-mail Address Validating Regular Expressions」にあるPHPのfilter_varの検証用フィルタFILTER_VALIDATE_EMAILを利用しています(Dフラグはサポートされていないので外しました)。

よってPHPの下記のコードと同じ結果が得られると思いますが、認識が間違っていたらどこかでつぶやいてください。

<?php
if ( filter_var($address, FILTER_VALIDATE_EMAIL) ) {
    echo "OK";
} else {
    echo "NG";
}
?>

RFCモードでバリデーションOKにならないメールアドレスもあるので、詳しくは参考記事を参照ください。

JavaScriptメールアドレスチェッカー: 小粋空間 (via darylfranz)

(via darylfranz)


(via zombienoyume)





hamburg55:

小池里奈

hamburg55:

小池里奈

(via sssshhhhiiiinnnn)


(via rapeandhoney)


kawaii-sexy-love:

Rina Koike 小池里奈

kawaii-sexy-love:

Rina Koike 小池里奈

(via sekisyu)


Page 1 of 13536