JavaScriptの文字列検索
- 前のページ JS 文字列メソッド
- 次のページ JS 文字列テンプレート
文字列を検索するための JavaScript メソッド:
- String.indexOf()
- String.lastIndexOf()
- String.startsWith()
- String.endsWith()
String.indexOf()
indexOf()
方法は指定されたテキストが文字列の中に存在するかどうかを返します。最初に(の場所)のインデックスが現れました:
例
let str = "Please locate where 'locate' occurs!"; str.indexOf("locate") // 返り値は 7
JavaScript はゼロから位置を計算します。
0 は文字列の中の最初の位置であり、1 は第二、2 は第三 ...
String.lastIndexOf()
lastIndexOf()
メソッドは指定されたテキストが文字列内で最後の出现場所のインデックスを返します:
例
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("locate") // 21を返します
テキストが見つからない場合、indexOf()
そして lastIndexOf()
どちらも-1を返します:
例
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("Bill") // -1を返します
これら2つのメソッドは2番目のパラメータを検索の開始位置として受け取ります:
例
let str = "Please locate where 'locate' occurs!"; str.indexOf("locate", 15) // 21を返します
lastIndexOf()
メソッドは後方から検索します(末尾から先頭に向かって)、つまり:2番目のパラメータが 15
、それから位置15から始めて、文字列の先頭まで検索します。
例
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("locate", 15) // 7を返します
String.search()
search()
メソッドは指定された値を文字列内で検索し、マッチングの場所を返します:
例
let str = "Please locate where 'locate' occurs!"; str.search("locate") // 7を返します
気づきましたか?
indexOf()
そして search()
これら2つのメソッド、等しいですか?
彼らは同じパラメータを受け取り、同じ値を返しますか?
これら2つのメソッドは等しくありません。以下の違いがあります:
search()
メソッドは2番目の開始位置パラメータを受け入れません。indexOf()
メソッドは強力な検索値(正規表現)を利用できません。
正規表現の詳細は後の章で学びます。
String.match()
match()メソッドは正規表現に基づいて文字列内でマッチングアイテムを検索し、マッチングアイテムをArrayオブジェクトとして返します。
例1
文字列内で「ain」を検索します:
スペインの雨は主に平原に留まります。 text.match(/ain/g) // 配列 [ain,ain,ain] を返します
正規表現の詳細はJS RegExpの章で学んでください。
正規表現にg修飾子(完全検索を実行)が含まれていない場合、match()メソッドは文字列内の最初のマッチングアイテムのみを返します。
文法
string.match(regexp)
regexp | 必須です。検索する値は正規表現です。 |
返却: | 配列、マッチングアイテムを含みます。各マッチングアイテムは1つのプロジェクトに対応します。マッチングアイテムが見つからない場合はnullです。 |
例2
「ain」に対して、大文字と小文字を区別しない完全な検索を実行します:
スペインの雨は主に平原に留まります。 text.match(/ain/gi) // 返回数组 [ain,AIN,ain,ain]}
String.includes()
指定された値を含む場合includes()
メソッドはtrueを返します。
例
let text = "Hello world, welcome to the universe."; text.includes("world") // 返回 true
ブラウザのサポート
Internet ExplorerはString.includes()をサポートしていません。
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 41 | Edge 12 | Firefox 40 | Safari 9 | Opera 28 |
2015年3月 | 2015年7月 | 2015年8月 | 2015年10月 | 2015年3月 |
文法
string.includes(searchvalue, start)
searchvalue | 必要です。検索する文字列が必要です。 |
start | オプションです。デフォルトは0です。検索を開始する位置。 |
返却: | 指定された値を含む場合 true 、そうでない場合は false |
JSバージョン: | ES6 (2015) |
文字列が"world"を含むかどうかを確認します、位置12から検索します:
let text = "Hello world, welcome to the universe."; text.includes("world", 12) // 返回 false
String.startsWith()
指定された値で始まる場合 startsWith()
メソッドは返します true
、そうでない場合は false
:
例
let text = "Hello world, welcome to the universe."; text.startsWith("Hello") // 返回 true
文法
string.startsWith(searchvalue, start)
パラメータ値
パラメータ | 説明 |
---|---|
searchvalue | 必要です。検索する値が必要です。 |
start | オプションです。デフォルトは0です。検索を開始する位置。 |
例
let text = "Hello world, welcome to the universe."; text.startsWith("world") // 返回 false
let text = "Hello world, welcome to the universe."; text.startsWith("world", 5) // 返回 false
let text = "Hello world, welcome to the universe."; text.startsWith("world", 6) // 返回 true
注:startsWith()
メソッドは大文字小文字を区別します。
Internet Explorer はサポートしていません startsWith()
メソッド。
完全にサポートされている最初のブラウザバージョンは:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 41 | Edge 12 | Firefox 17 | Safari 9 | Opera 28 |
2015年3月 | 2015年7月 | 2015年8月 | 2015年10月 | 2015年3月 |
String.endsWith()
指定された値で終わる場合 endsWith()
メソッドは返します true
、そうでない場合は false
:
例
文字列が"Gates"で終わるかどうかを確認します:
var text = "Bill Gates"; text.endsWith("Gates") // 返回 true
文法
string.endsWith(searchvalue, length)
パラメータ値
パラメータ | 説明 |
---|---|
searchvalue | 必要です。検索する値が必要です。 |
length | オプション。検索する長さ。 |
"world" で終わる文字列の最初の 11 文字を検索します:
let text = "Hello world, welcome to the universe."; text.endsWith("world", 11) // true を返します
注:endsWith()
メソッドは大文字小文字を区別します。
Internet Explorer はサポートしていません endsWith()
メソッド。
この方法を完全にサポートする最初のブラウザバージョンは:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
完全な文字列リファレンスマニュアル
完全なリファレンスが必要な場合は、私たちの完全な JavaScript 文字列リファレンスマニュアル
このマニュアルには、すべての文字列属性とメソッドの説明と例が含まれています。
- 前のページ JS 文字列メソッド
- 次のページ JS 文字列テンプレート