メールアドレスを表す現実的な正規表現 – Qiita
RFC5322で定義されているメールアドレスの書式を完全にサポートすることは簡単ではありませんが、適当な正規表現を紹介してOKとする記事があとを絶ちません。
ということにモヤモヤしていたのですが、必要に迫られまして。
メールアドレスを表す現実的な正規表現 – Qiita
HTML5には input[type=email] という要素があり、メールアドレスの書式チェックをクライアントサイドで行えるようになっています。このチェックでは、下記の(Perl5の記法にならった)正規表現を使っています。
すごい、長さが現実的、そして根拠が強い。ということで、これからはこちらに倣うことにしました。ご紹介ありがとうございます。
HTML 5.2: 4.10. Forms
A valid e-mail address is a string that matches the email production of the following ABNF, the character set for which is Unicode. This ABNF implements the extensions described in RFC 1123.
XHTML 1.0 – HTML Compatibility Guidelines
For example, when the href attribute of the a element refers to a CGI script that takes parameters, it must be expressed as http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user rather than as http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.
XHTML1.0はここにあった。HTML5はどこ見ればいいのー?
HTML5
HTML5
Amazonの評判がすこぶるよかったので買ってみた。
HTML互換にするためのXHTMLの書き方だとか、<h1>や<h2>はこんな風に並べると自然だとか、実際にはどうやって適用すればいいのかという、DTDとかを読んでいて感じる解釈のブレ、隙間感を埋めてくれる感じがした。
後半に出てくる、CSSで3カラムレイアウトみたいなのも、こうするためにこう書きます、とちゃんと説明してくれている。
なんというか、気持ちいいわこれは。
友達に、「HTML 4.01では<TABLE>の直下は<TBODY>必須らしいよ。」と言われて、「え?そうなの?」てことで調べてみた。
http://www.w3.org/TR/html4/sgml/dtd.html
http://www.w3.org/TR/html4/sgml/loosedtd.html
<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
おーたしかに。ちなみにXHTML 1.0は、
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
<!ELEMENT table
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
<tr>でも許される、と。
技術メモ帳 – URI の data: スキーム
今日初めて知ったのだが、data スキームを使えば
URIにデータを組み込めるそうだ。
[via] [を] HTMLファイルに文字列として画像データを埋め込む
おぉー!知らなかったー!ってことでやってみる。
irb(main):001:0> require "base64"
=> true
irb(main):002:0> Base64.b64encode(IO.read("saikyoline_60.gif"))
R0lGODlhPAA8AOYAAABmAO7u7n+yf1iFWDOZM8zMzCqAKqWlpb29vTycPLW1
tXuce9fX1xBwEEKOQprCmv///1ObUyF3Id3d3ZmZmWaZZrPAs0mfSTiGOMDG
wE2BTc3hzefn5whrCCp9Kq2trYq5ilmbWYqdivf397rWuhlyGW+pbzGDMa7O
...
で、→

でたー!(ソースは↓)
<img src="data:image/gif;base64,R0lGODlhPAA8AOYAAABmAO7u7n+yf1iFWDOZM8zMzCqAKqWlpb29vTycPLW1tXuce9fX1xBwEEKOQprCmv///1ObUyF3Id3d3ZmZmWaZZrPAs0mfSTiGOMDGwE2BTc3hzefn5whrCCp9Kq2trYq5ilmbWYqdivf397rWuhlyGW+pbzGDMa7Ortrp2kuTS9Xm1UOdQ2mlabXTtWaZZjF+MZOwk5O+kw1uDXuwe4SihESUROfx56HHofD28GCIYMXFxVKUUoO1g1KPUp2lnXOQc1mSWbXOtY67jsXcxSJ6IpmZmdDj0HOrc42qjTt/O/f/9zyMPKKrouDs4GOhY1iLWKbKpnGdcf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUAFMALAAAAAA8ADwAAAf/gBCCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydigEMoaKjpKITnooHHwqsra6vrAc5qIcjBzsFubq7vDsIB7SIGQoHCri8uTsKH6sIp8GIIwUUGcgZHwUcI9CNHArIHwzcjyPYuxnA44k5LiYqJ0o/vAoaDRInTyizgiMkT0xMhmzL1C9EkQ4NMKiIIOXbrh8RLlyIoKJBEQFORrRoYCNCBAkoMN0QUIRjBBYEUhJYgIAXhQQqU0YwAKCDgQsqT0SxNMLEDAwRYsYUcSxXBhFCk8ZscKPShiI3lRJI8ETeLgVAFuKUmvJCg0ouJNhQmiACBgBQHOr6ECMEhhIA/wwEVUqR0o0Gc2MmUFECw5AbB1ruOhBgUI4hHJWCpBSBiVIbJzYMusUrHaENJfJ2LTIw0ggAW4VieDAowIF5BQ6ZcBzTL6UjAKTaYDJwgtpcHzgcChszwol9kjY0kJrAABPJvnh96EwoReyULBqEpJRjRmihCWwAkOAgSbVcCBREK6GCwEwTzCW1MACTeAQYJTqUgBFkwY5ERAzIH4IphwP2XKmUnQMezNABdz2ssAQ0N4SQWYBJseDRWeShkB4nUXjQgArXQaiSRBI0QANwnpBQkQRMROShUGY1QBo0K/TABFx9OTDWihGU0MKFqBSwgA8abgfDSQF6BcIkTpzVwf8JLjCCgGAFZFADFCd0wESHMV1QAo+LhMBEAnudwMgHRRUQDgRO0EAeVwA0BUkOHaA0VQckGpKDOboc0NkRHWi2lJuP9GBATAbgoIhtu+zwQSFIYKAUC1tCMoIEmpmliDJX3UcIDY4mtVAkLjTQXkrFObACImQ+9AwEN/TwoFBaSsZPLuIkosKNejHRQAhEFMLBabpk8MMII6AQgT1+EuAVEoQoykwiTnSAZVc2NLCdAy08YIEFVwGhn0l0lQBCZwyQiYCmhwgwKIQSNmaADlAWcAAUKj56QgNNlkbZmbUUkSyERD0kZ1ItIkHiCE/moiciJIhKapVWRjCqXhQkSoHHUBJWawAIgA4SnlHiITIEpRNJEMINN8hwAgApStReBE3sgoAIEl3ARIgY9JCCMGp9k8gRIZxwggpRkOgECCoYUIKBHQxwmwI6FMHEEzJswKUg5Q6m2ybG7PLBqoyUW+YPnHCAJ25gK2JmmU9uMsEB3+mCwNdXg8JKmWamHQkHBYRXTNznLNPMk+Ex0wwy8l7dSHgJI97LDpBH7rguil7S9eSYZ56Lz5asAsvnoIfeSm6XRG766ainrnrk6rTu+uuwxy777LQHAgA7" alt="SaikyoLine.jp"/>
※でない方へ。「そこ、\nとか入ってません?」いや、自分がハマったもんで。
[ref.] RFC 2397 – http://www.ietf.org/rfc/rfc2397.txt
では"</"←ETAGO(End TAG Open)をそのまま書いちゃダメらしい。from W3C
もし書くなら"/"をエスケープして"<\/"って書くんだと。