JavaScriptを学び始めたばかりで、「正規表現」という言葉を耳にしたことがあるかもしれません。正規表現は、文字列の中から特定のパターンを見つけ出したり、文字列を操作したりするための便利な方法です。最初は難しく感じるかもしれませんが、使い方を覚えると、大変役立ちます。
今回は、プログラミング初心者でもわかりやすく、JavaScriptでの正規表現の基本から実際の使い方まで丁寧に解説します。
忍者CODEマガジンは、未経験からでもプロのエンジニアを目指せるプログラミングスクール「忍者CODE」が運営しているプログラミング情報サイトです。
- プログラミングの効果的な学習方法
- プログラミング用語の解説
- エンジニアのキャリアに関する情報
など、プログラミングを始めたばかりの初学者に役立つ記事を幅広く公開しています!
JavaScriptの「正規表現」とは?
JavaScriptの正規表現とは、文字列内の特定のパターン(文字の並び方や規則)を検索、抽出、操作するための方法です。簡単に言うと、正規表現を使うことで、複雑な条件で文字列を扱うことができます。例えば、特定の単語や数字のパターンを見つけたり、特定のフォーマットに従った文字列を抽出したりすることが可能です。
正規表現は、スラッシュ(/)で囲まれた形式で書かれ、その中で特殊な記号や文字を使うことで、パターンを定義します。例えば、「abc」という文字列に正規表現で一致させる場合は、単純に「/abc/」と書きますが、これを少し応用して「任意の数字」や「特定の範囲の文字」なども表現できます。
初めは複雑に見えるかもしれませんが、基本的な概念を理解すれば、多くの場面で役立つ便利な技術です。
JavaScriptの講義動画を無料で見れる入門講座
JavaScriptの学習に迷った方はまずはJavaScript入門講座をチェックしましょう!
JavaScriptとは何かといった話から、問題集、一部講義動画の視聴もすべて無料で利用できます!!
本の購入やスクールへ通う前に、一度入門講座を確認しておくと、スムーズに学習を始めることができますよ。
JavaScriptの正規表現を使うシーン
JavaScriptにおける正規表現は、主に文字列の操作、つまり特定のパターンに一致する文字列の抽出や変換、あるいは不要な部分の削除などで活躍します。
例えば、ユーザーからの入力内容が正しい形式かどうかを確認する場合、正規表現を利用することで迅速に検証が行えます。
例えば、下記のようなシーンが考えられます。
・フォームに入力された電話番号の検証
フォームにユーザーが入力した電話番号が、指定されたフォーマットに従っているかを確認したい場合に正規表現を使います。例えば、10桁の数字でなければエラーを表示する、といった処理が簡単にできます。
・メールアドレスのドメイン部分の抽出
大量のメールアドレスが含まれるリストから「@」以降のドメイン部分だけを抽出したい場合、正規表現を使うことで、ドメイン部分を取り出すことができます。このように、パターンに基づいた文字列の抽出が簡単に実現できます。
これらの例からわかるように、正規表現はJavaScriptにおける文字列操作で非常に便利です。特に、パターンマッチングや文字列の検証を簡潔に行いたい場合には不可欠な方法となります。
オススメ:JavaScriptの問題集に無料で挑戦しよう!
JavaScriptを勉強していると、調べれば分かることもありますが、実際に自分でアウトプットするのは難しいと感じたことはありませんか?
アウトプットするためのおすすめの方法は、「問題解くこと」です。
忍者CODEでは、JavaScriptに関する問題を60問以上用意しており、LINE登録するだけで解答を無料で確認できます!
JavaScriptの正規表現に使用される記号の例
正規表現は、特定のパターンを表現するためにいくつかの記号(メタ文字)を使用します。これらの記号を使うことで、文字列の検索や置換がより柔軟に行うことが可能です。
ここでは、正規表現でよく使われる記号をいくつか紹介し、それぞれの使い方を解説します。
^(ハット)|文字列の先頭
「^」(ハット記号)は、文字列の先頭を示すために使用されます。例えば、“^おはよう” という正規表現を書くと「おはよう」や「おはようございます」という文字列がマッチします。つまり、行頭が「おはよう」である場合のみマッチし、それ以外の文字列には一致しません。
$(ドル)|文字列の末尾
「$」(ドル記号)は、文字列の末尾を表すために使います。例えば、“またね$” という正規表現を書くと、「またね」や「じゃまたね」にマッチします。「$」を使えば、特定のパターンが文字列の最後に来る場合に、その文字列を効率的に検出することが可能です。
|(パイプ)|いずれかの文字列
「|」(パイプ)は、複数の文字列のいずれかにマッチするために使用されます。例えば、“松|竹|梅” という正規表現は、「松」「竹」「梅」のいずれかの文字列にマッチします。
記述する際は、スペースを含めないようにすることが大切です。スペースを入れると、そのスペースも1文字として認識されるため、意図しない結果になる可能性があります。
()(かっこ)|グループ化
「()」は、正規表現で複数の選択肢をグループ化するために使われます。例えば、“(鳥|犬|猫)が鳴いています”という正規表現は、「鳥が鳴いています」「犬が鳴いています」「猫が鳴いています」のいずれかのパターンにマッチします。このようにグループ化することで、特定の範囲内でのパターンマッチングが可能です。
.(ピリオド)|改行以外の任意の1文字
「.」(ピリオド)は、改行以外の任意の1文字にマッチします。例えば、“夏は..い” という正規表現では、「夏は楽しい」や「夏はあつい」など、文字数が2つであれば何にでもマッチしますが、「夏は熱い」などではマッチしません。このように、「.」は任意の1文字を表す便利な記号です。
*(アスタリスク)|直前の文字が0個以上ある
「*」(アスタリスク)は、その直前の文字が0個以上あることを示します。例えば、“ドドー*ン” という正規表現では、「ドドン」「ドドーン」「ドドーーーン」のすべてにマッチします。
また、「.*」のように「.」と組み合わせて使うと、任意の文字列がいくつあってもマッチするパターンになります。例えば、“.*日本一.*” という正規表現は、「日本一」という言葉を含むすべての文字列にマッチします。
+(プラス)|直前の文字が1個以上ある
「+」(プラス記号)は、直前にある文字が1個以上存在する場合にマッチします。例えば、“ドドー+ン” という正規表現は、「ドドーン」や「ドドーーーン」にマッチしますが、「ドドン」にはマッチしません。これは、少なくとも1つ以上の「ー」が存在することを求める場合に使われます。
?(クエスチョン)|直前の文字が1個ある、またはない
「?」(クエスチョンマーク)は、直前の文字が1個あるか、またはない場合にマッチします。例えば、“ドドー?ン” という正規表現では、「ドドン」でも「ドドーン」でもマッチしますが、「ドドーーーン」にはマッチしません。1つか0個の文字に対応したパターンを表現するのに便利です。
独学でJavaScriptの学習に行き詰ったらプログラミングスクールを検討しよう!
本や学習サイトを使って独学でJavaScriptを学習するのはなかなか難しいものですよね。
忍者CODEが提供するWeb制作コースの独学プランでは、24時間質問できるチャットサポート体制を整えているので、分からないところはいつでもプロのクリエイターに聞くことができます。
独学での勉強に限界を感じたときは、ぜひ無料相談を受けてみましょう!
JavaScriptの正規表現で使用するメソッドについて
ここでは、JavaScriptで正規表現を利用する際に使われるメソッドについて解説します。
メソッドとは
JavaScriptにおける「メソッド」とは、オブジェクトが持つ関数(※1)のことを指します。オブジェクトとは、データと、そのデータを操作する機能をまとめたものです。メソッドを使うことで、オブジェクトに対して特定の処理を行うことができます。
簡単に言うと、コンピューターに対して何かを実行するように指示を出すための「機能」と考えてもらえれば良いでしょう。
※1:特定の処理をまとめたプログラムの部品のこと。必要なときに呼び出して使用することが可能
よく使用される代表的なメソッド
下記はよく使用されるメソッドです。
メソッド | 指示内容 |
alert() | メッセージをポップアップで画面に表示できる |
click() | ボタンをクリックすると指定した処理を実行する |
prompt() | 情報入力のための入力画面を表示する |
confirm() | 内容の正誤を確認するボタンを表示する |
match() | 文字列に含まれている特定の文字を検索する |
search() | 指定の正規表現にマッチした文字列の位置を取得する |
test() | 指定した文字列に対し「true」もしくは「false」を返す |
includes() | 与えられた値が配列に含まれているかを調べ「true」もしくは「false」を返す |
concat() | 複数の配列を結合する配列(Array)メソッドのひとつ |
メソッドには、大きく分けてインスタンスメソッドと静的メソッドの2つの種類があります。インスタンスメソッドとは、クラスのオブジェクトに対して実行されるメソッドのことです。主に“static()”メソッドを指します。クラスとはオブジェクトを作るための設計図です。設計図の中にプロパティや機能(メソッド)を記述します。
静的メソッドとは、クラスそのものに属するメソッドのことで、オブジェクトを作成せずに呼び出すことができます。
よく使われる配列メソッドは、まとまったデータ(オブジェクト)に対して操作を行うためのインスタンスメソッドになります。“splice()”“map()”など配列の追加や削除を行うメソッドがたくさん存在します。
コーディングスキルを活かして「副業」を獲得するには?
忍者CODEが提供するWeb制作コースの副業・案件獲得保証プランでは、HTMLだけでなくCSS、JavaScript、PHPと言った言語も学べるため、高単価な副業案件を獲得できるスキルを身につけられます。
現役クリエイターが学習のサポートをしてくれるため、学習中に分からないことがあれば、24時間無制限のチャットサポートでいつでも質問が可能です。
また、カリキュラムを受講完了した1ヶ月以内に5万円分の案件を必ずお渡ししています。副業をしたい方はぜひ忍者CODEをチェックしましょう!
JavaScriptの独学が難しいと思ったら
JavaScriptを独学で学び始めて、途中で挫折しそうになることはよくあります。特に、正規表現のような少し難しい概念に直面すると、理解に時間がかかり、やる気を失うこともあるでしょう。
どこをゴールにしていいかわからない…
挫折してしまわないかな…
このように不安な気持ちになる方もいますよね。
たしかに、何かわからないことが出てきたとき、エラーが解決できないとき、誰かに相談できる環境がないことが理由でJavaScriptの学習を挫折する方が多くいます。
実際にJavaScript初学者が挫折をする1番の理由は「不明点が発生した際に気軽に相談できる環境がない」という実態があります。
それだけ学習する環境が大事だということです。
そんな背景があるからこそ、JavaScriptの勉強をする際にスクールを選ぶ方が多いのが事実です。
プログラミングスクールに通う理由は他にもあり
・効率良く学習を進めたい
・モチベーションの維持にもつながりそう
・以前に独学で挫折した経験がある
・学習者同士でつながれるコミュニティへの招待
忍者CODEの学習は“実践型”!
だから結果を出せる!
●初めてJavaScriptを学習する方
∟はじめての方でも安心してJavaScriptを学習できるように、基礎知識から実践的な課題までプロへのロードマップが分かりやすいカリキュラムを採用。
●副業に有利なことを探されている方
∟未経験からでもスキルを習得できる“実践的カリキュラム”と、学習だけでなく受講後もプロのメンターがマンツーマンで徹底的に副業サポートまで行い、受講後は必ず案件をご紹介するプランの副業・案件”保証”プランもあります。
●業界最安級の受講費用で始めやすい
∟税込9,800円から始められる忍者CODEのプログラミングスクールは業界でも最安級!それでも学習し放題、チャットサポートは無期限・無制限と、プロのメンターとエンジニアを筆頭に、皆さんを徹底的にサポートします。
まとめ
JavaScriptの正規表現は、文字列の検索や置換など、特定のパターンを簡潔に処理するための便利な方法です。正規表現を学ぶことで、複雑な文字列操作が容易になり、プログラミングの幅が広がります。ぜひ正規表現の使い方を学び、プログラミングスキルを向上させましょう。
- JavaScriptを学んでWebサイトを制作したい
- JavaScriptのスキルを身につけてクリエイターとして活躍したい
- サポートが充実しているプログラミングスクールを知りたい
そんな思いを持った方は忍者CODEのWeb制作コースがおすすめです!
忍者CODEは未経験からでもプロのクリエイターを目指せるオンラインプログラミングスク―ルです。
期間制限なく動画を視聴できるので、自分のペースで学習することができます!