プログラミング学習37日目
今日の学習内容
1.正規表現(メールアドレスについて)
2.javascriptの概要
1.正規表現(メールアドレスについて)
メールアドレスはaaa@aaa.ne.jpの形式であると仮定して
「文字列+@+文字列+.ne.jp」であればメールアドレスと判断がつくと考える
mail = "a1b2c3@aaa.ne.jp"
=>a1b2c3@aaa.ne.jp
mail.match(/.+@.+ne.jp/)
=>#<MatchDate "a1b2c3@aaa.ne.jp">
上記の文字列部分に関してはメールアドレスの仕様として決まっている文字列としての設定ができていない状態なので設定していかなければならないということみたいです。
例えば、正規表現を下記のように変数に代入して見ます。
valid_mail =/\A[a-zA-Z0-9_#!$%&`'*+-{|}~^\/=?.]+@[a-zA-Z0-9][a-zA-Z0-9.-][a-zA-Z0-9]+\z/
mail.match(valid_address)
=> #<MatchData "a1b2c3@aaa.ne.jp">
正規表現をより詳細にした状態でメソッドを実行すると上記のメールアドレスに関して最初の検証より妥当性が向上していると考えられます。
先日のリファクタリングの件もあり、この正規表現でも最初のコードの方が短くていいじゃんという素人じみた発想があったのですが、この考えは間違えだったようです。。
調べた範囲では、正規表現に関しては長い正規表現ほど良いとされるようです。
何故かというと、
正規表現においては実行されたテキストに対してスキャンをしにかかるわけですが、
正規表現が簡易的な短いものであった場合、内容全てを読み込んでしまうかつ、
読み込んだ情報全てから条件に合致するものを探すみたいな処理になるので非常に時間がかかることになるからということです。
2.javascriptの概要
通称jsについてブラウザの互換性問題の解決の為に書き方が決められており、ECMAscriptで描かれることが一般的である。
この言語に関しては、フロントエンドと呼ばれる部類で主に見た目を変化させる機能を実施する際に使用される。
例えば、プルダウンや画面を更新しなくてもサーバと通信ができるようになる機能(twitterとかで言う「いいね」の機能とか)はこの言語を用いて実装可能みたいです。
ここまでお読み頂きありがとうございます。
上記の記事の内容で間違い等ありましたらご教授頂けますと幸いです。