validate_email = ( email ) ->
(/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/).test email
これは機能しますが、79 文字で「行の最大長」テストに失敗するため、coffeescript.org の例を使用して 80 文字未満 (実際には最大 74 文字) に削減しようとしています。
RFC822 = /// ^ (
([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+
| \x22([^\x0d\x22\x5c\x80-\xff]
| \x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a
-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+
| \x22([^\x0d\x22\x5c\x80-\xff]
| \x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a
-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+
| \x5b([^\x0d\x5b-\x5d\x80-\xff]
| \x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a
-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+
| \x5b([^\x0d\x5b-\x5d\x80-\xff]
| \x5c[\x00-\x7f])*\x5d))*$/
) ///
RFC822.test email
これは問題なくコンパイルされますが、機能しません。常に false を返します。
どうすればいいですか?