もくじ
この記事では、JavaScriptで文字列の後方一致を判定する方法を5つ紹介します。
ファイル拡張子の確認やURLの末尾の確認など、多くの状況で後方一致のチェックが必要なことがあるためまとめました。
JavaScriptで文字列の前方一致を判別する方法は以下の記事で紹介してます。
【JavaScript】文字列の前方一致を判別する方法6選
もくじstartsWith()メソッドで前方一致を判別正規表現(RegExp)を使って前方一致を判別indexOf()メソッドで前方一致を判別slice()メソッドで前方一致を判別substring( ...
JavaScriptで文字列の部分一致を判別する方法は以下の記事で紹介してます。
【JavaScript】特定の文字列を含むかを確認する方法7選
もくじincludes()メソッドで部分一致を判別正規表現(RegExp)を使って部分一致を判別indexOf()メソッドで部分一致を判別search()メソッドで部分一致を判別match()メソッド ...
endsWith()メソッドで後方一致を判別
JavaScriptで後方一致を判別する最も簡単な方法は、endsWith()
メソッドを使用することです。
endsWith()
メソッドは、文字列と指定した文字列を比較し「後方一致」している場合にtrue
を返します。
シンプルで直感的な方法なので、可読性にも優れています。
endsWith()
メソッドのブラウザ別対応状況は以下から確認できます。
https://caniuse.com/?search=endswith
const str = 'JavaScript is awesome!';
console.log(str.endsWith('awesome!')); // true
console.log(str.endsWith('Awesome!')); // false
正規表現(RegExp)を使って後方一致を判別
endsWith()
メソッドよりも柔軟な後方一致判定を行いたい場合は、正規表現を使用することで実現可能です。
例えば、大文字・小文字を無視した後方一致の判定が可能です。
/awesome!$/
は文字列がawesome!
で終わっているかを確認する正規表現です。
i
フラグを使うと、大文字・小文字を無視した後方一致が判定できます。
const str = 'JavaScript is awesome!';
console.log(/awesome!$/.test(str)); // true
console.log(/Awesome!$/.test(str)); // false
console.log(/awesome!$/i.test(str)); // true(大文字小文字を無視する場合)
console.log(/Awesome!$/i.test(str)); // true(大文字小文字を無視する場合)
slice()メソッドで後方一致を判別
slice()
メソッドを使い、文字列の最後の部分を取り出して後方一致を確認することができます。
endsWith()
メソッドがサポートされていない古いブラウザで後方一致を判別したい場合に有効です。
以下はslice()
メソッドを使用して、文字列の最後8文字を切り出し、それを比較することで後方一致を判別します。
const str = 'JavaScript is awesome!';
console.log(str.slice(-8) === 'awesome!'); // true
console.log(str.slice(-8) === 'Awesome!'); // false
lastIndexOf()メソッドで後方一致を判別
lastIndexOf()
メソッドを使用し、文字列の最後に一致するかを確認します。
見つかったインデックスがstr.length - 8
に等しい場合、後方一致していることになります。
const str = 'JavaScript is awesome!';
console.log(str.lastIndexOf('awesome!') === str.length - 8); // true
console.log(str.lastIndexOf('Awesome!') === str.length - 8); // false
substring()メソッドで後方一致を判別
substring()
メソッドもslice()
メソッドと同じように、文字列の末尾部分を切り出して比較することで後方一致を判別できます。
const str = 'JavaScript is awesome!';
console.log(str.substring(str.length - 8) === 'awesome!'); // true
console.log(str.substring(str.length - 8) === 'Awesome!'); // false
【まとめ】どの後方一致判定方法を使うべきか?
今回紹介した5つの方法の中で、最もシンプルで読みやすいのは endsWith()
メソッドですが、古いブラウザに対応していないというデメリットがあります。
また、使用するブラウザ環境や判定の厳密さによっては、lastIndexOf()
メソッドや正規表現も有効です。
用途に応じて、最適な後方一致判定方法を選ぶ必要があります。
最新ブラウザが対象
endsWith()
メソッドが一番シンプルで可読性にも優れている。大文字・小文字を無視した後方一致
正規表現(RegExp)がおすすめです。古いブラウザへの対応
lastIndexOf()
メソッドやslice()
メソッドが安定しています。
udemyでJavaScriptを学ぶ
- 本格的なWEBサイトを作成する方法について学びます。
- Sass(※以下CSSと記載)、JavaScriptの基礎について深く学びます。
- CSS、JavaScriptの実践的な記述について深く学びます。
- CSS、JavaScriptアニメーションの実装について学びます。
- 最新の実践的なWEB画面の作成方法について深く学びます。
- CSS、JavaScriptのコードの最適化、安定化について学びます。
- 維持管理、持続可能なコードの記述方法について学びます。
- ドットインストールでCSS、JavaScriptの入門編を終えたレベルの方
- 他の先生のフロントエンドの入門編を終えたレベルの方
- 自分で本格的なWEBサイトを作ってみたい方
- CSS、JavaScriptの実践的な基礎を効率的に学びたい方
- CSS、JavaScriptを今後仕事で使う予定の方
- CSS、JavaScriptのコードの整理方法について学びたい方
- CSS、JavaScriptのアニメーションを学びたい方
- CSS、JavaScriptのレベルアップしたいWeb開発初級者の方
- CSS、JavaScriptでどのようにすればレベルアップできるのか悩んでいる方
- JavaScriptの動作原理について深く学びます。
- JavaScriptがどのように実行されるのかについて深く学びます。
- ES6+の最新のJavaScriptの記法について幅広く学びます。
- 変数や参照の仕組みについて深く学びます。
- オブジェクトのメカニズムについて深く学びます。
- 関数のメカニズムについて深く学びます。
- スコープの仕組みについて深く学びます。
- プロトタイプのメカニズムについて深く学びます。
- 反復処理のメカニズムについて深く学びます。
- ジェネレーターやイテレーターについて深く学びます。
- コールバック関数について深く学びます。
- 非同期処理のメカニズムについて深く学びます。
- モジュールの仕組みについて深く学びます。
- クロージャーの仕組みについて深く学びます。
- レキシカルスコープの仕組みについて深く学びます。
- アロー関数の特徴について深く学びます。
- レキシカルスコープの仕組みについて深く学びます。
- アロー関数の特徴について深く学びます。
- thisの仕組みについて深く学びます。
- bind、apply、callの動作原理について深く学びます。
- クラスと継承の仕組みについて深く学びます。
- ReflectやProxyなどの強力なオブジェクトへの理解を深めます。
- Map,Setなどの強力なコレクションについて実践を交えて学びます。
- よく使用される強力な実装パターンを演習を交えて学びます。
- 独自のフレームワークを構築していく中でJavaScriptのメカニズムについて理解を深めます。
- JavaScriptをコアの動作原理からキチンと理解したい方。
- 自分の思った通りコードが動かずに悩んでいる方。
- 自分の思った通りに動かず、気付いたら解決するのに1日経ってしまっていた経験のある方。
- React, Vue, Angularが使いこなせず悩んでいる方。
- JavaScriptの不可解な動きが理解できず、苦しんでいる方。
- 少し複雑なコードを書こうとすると、ぐちゃぐちゃになって整理しきれず、悩んでいる方。
- JavaScriptを本気で勉強したいと思っている方。
- JavaScriptの変態仕様に苦しんでいる方。
- JavaScriptが苦手なプログラマーの方。
もみじ
JavaScripの基礎的なことを理解しており、より深くJavaScriptについて理解したいという方にオススメの講座です。
初心者の方が一度の受講で全てを吸収するのは難しいですが、繰り返し受講することでフロントエンドの業務で役立つ知識を身に付けることができます。
HTMLとCSSの知識がありJavaScriptを学びたいという方におすすめの1冊
もみじ
HTMLとCSSの知識がありJavaScriptを学びたいという方に入門書としておすすめの書籍です。
実務で役立つサンプルを手を動かしながら学ぶことができ、実践的なスキルを身に付けることができます。
JavaScriptのフロントエンドエンジニアを目指している方におすすめの1冊
もみじ
この本はJavaScript初心者からフロントエンドエンジニアを目指す方にぴったりの1冊です。
非同期処理やAJAXなど、現代の開発で必要なスキルがわかりやすく解説されており、実務で役立つスキルを学ぶことができます。
もみじ
HTML・CSS・JavaScripの基礎的なことを理解しており、Webのフロントエンジニアを目指している方にオススメの講座です。
講座内容は実践で使用するものが多く、実務でも役立つ内容でした。