【JavaScript】正規表現その②:講師おすすめの勉強方法はこれ!
皆さんこんにちは!
プログラミング初心者さんがつまずきやすいポイントを丁寧に解説、解消していく「初心者つまずき解消ブログ」です。
前回に引き続き、プログラミング初心者がつまずきやすい正規表現についてJavaScriptを例に解説していきます。
今回は正規表現の学習方法について紹介していきます。
前回の記事が気になる方はこちら↓から
その①でJavaScriptにおいて正規表現は、入力情報のバリデーション機能に使うと解説しました。
そのため、JavaScript初心者は実際に実装しながら勉強していくのがいいでしょう。
ざっくりですが、バリデーション機能は以下のような流れで実装できます。
(matchメソッドと組み合わせて使うため、matchメソッドについては必須で調べましょう。)
例:JavaScriptのコード //ユーザー入力した文字列を取得し変数に入れる。 var userinput = "aaa"; //matchメソッドの中に正規表現を書く if(userinput.match(/^[a-z]$/)){ // /^[a-z]$/ これは「最初から最後までa~zだけで構成されている文字列」という意味 console.log("問題なし"); }else{ //エラーメッセージ console.log("a~z以外の文字が含まれています"); }
入力値のバリデーションを実装する時に多いのが「○○以外」という条件を設定することです。上記のコードでは、a~z以外が入力されていたらエラーとなる条件になっています。
しかし、正規表現は文字列の一致しか判定できないので、「○○以外」を判定するには少し不便です。そのためここは発想を転換して、
○○以外 = 最初から最後まで○○だけで構成されている
という条件に置き換える必要があります。
もちろん他にも判定方法はありますので、自由な発想で探してみるのも勉強の1つと言えます。
これらを踏まえ、正規表現は次の手順での勉強方法がおすすめです。
- 「半角以外を判定する」「全角以外を判定する」など、まず自分で条件を決める。
- 正規表現の特殊文字の対応表などを見ながら、正規表現に組んでみる。
- 例で紹介したコードのように簡略化した判定プログラムを作り、userinput内の文字列と、if文の中の正規表現をいじって、自分の考えた通りの挙動をするか確認していく。
ここで大事なのは、想定した結果と違う結果が出た場合に「なぜ今の結果になったか」の理由をわかるまで突き詰めていくことです。
動いたからOK、エラーが出ていないからOKという考え方でいると、のちに破滅を招きます。
ただ、特殊文字の使い方は全て覚える必要はありません。
課せられた課題に対して、その都度調べながら必要なものだけ覚えて使っていけばいいです。そして、自分が使ったものを経験として蓄積させていきましょう。
この記事へのコメントはありません。