indexOf()【順方向 文字列検索】
lastIndexOf()【逆方向 文字列検索】
includes()【部分文字列判定】
search()【正規表現検索 (簡易)】
match()【正規表現検索 (詳細)】

String.prototype.indexOf()【順方向 文字列検索】

メモ

構文

string.indexOf( searchString, position ) 
string.indexOf( searchString[, position] ) 

戻り値一致文字列位置 (詳細は下記参照)
searchString検索文字列
position検索開始位置 (0 ~ 【文字列長】:詳細は下記参照)
position補正値
省略0
position < 00
【文字列長】 < position【文字列長】
戻り値説明
0 ≦ 戻り値一致あり
-1一致なし

var str = "あいうえおあいうえおあいうえお";
console.log(str.indexOf("うえ", 0));   // 出力:2
console.log(str.indexOf("うえ", 5));   // 出力:7
console.log(str.indexOf("うえ", 10));  // 出力:12
console.log(str.indexOf("うえ", 15));  // 出力:-1
console.log(str.indexOf("うえ", -99)); // 出力:2
console.log(str.indexOf("うえ", 99));  // 出力:-1
console.log(str.indexOf("うえ"));      // 出力:2

String.prototype.lastIndexOf()【逆方向 文字列検索】

メモ

構文

string.lastIndexOf( searchString, position ) 
string.lastIndexOf( searchString[, position] ) 

戻り値一致文字列位置 (詳細は下記参照)
searchString検索文字列
position検索開始位置 (0 ~:indexOf() と同様 左からの位置 / 詳細は下記参照)
position補正値
省略【文字列長】
position < 00
【文字列長】 < position【文字列長】
戻り値説明
0 ≦ 戻り値一致あり
-1一致なし

var str = "あいうえおあいうえおあいうえお";
console.log(str.lastIndexOf("うえ", 0));    // 出力:-1
console.log(str.lastIndexOf("うえ", 5));    // 出力:2
console.log(str.lastIndexOf("うえ", 10));   // 出力:7
console.log(str.lastIndexOf("うえ", 15));   // 出力:12
console.log(str.lastIndexOf("うえ", -99));  // 出力:-1
console.log(str.lastIndexOf("うえ", 99));   // 出力:12
console.log(str.lastIndexOf("うえ"));       // 出力:12

String.prototype.includes()【部分文字列判定】

メモ

構文

string.includes( searchString[, position] )

戻り値判定結果
true:検索文字列を含む
false:検索文字列を含まない
searchString検索文字列 (正規表現不可)
position検索開始位置 (詳細は下記参照)
例外TypeError 例外 (searchString が正規表現)
(RegExp[ @@match ]【正規表現判定】プロパティ  をfalseに設定すれば回避可能)
position説明
0 ≦ start先頭からの文字位置 (0:先頭)
【文字列長】 < start:文字列長
start < 00 (先頭)

var str = "あいうえお";
console.log(str.includes("いう"));    // 出力:true
console.log(str.includes("いう", 1)); // 出力:true
console.log(str.includes("いう", 2)); // 出力:false

var regEx = /い.*え/;
regEx[Symbol.match] = false;                 // RegExp[@@match]
console.log(str.includes(regEx));     // 出力:false
console.log(str.includes(/い.*え/));  // TypeError 例外

メモ

構文

string.search( regexp )

戻り値一致文字列位置 (詳細は下記参照)
regexpRegExp【正規表現】オブジェクト (正規表現リテラル) (それ以外は作成)
戻り値説明
0 ≦ 戻り値一致あり
-1一致なし

var str = "あいうえおあいUえおあいuえお";
console.log(str.search(/い.え/));      // 出力:1
console.log(str.search(/きくけ/));     // 出力:-1
console.log(str.search("あいうえお")); // 出力:0
console.log(str.search("かきくけこ")); // 出力:-1

String.prototype.match()【正規表現検索 (詳細)】

メモ

構文

string.match( regexp )

戻り値検索結果配列 (一致なし:null / 詳細は下記参照)
regexpRegExp【正規表現】オブジェクト (正規表現リテラル) (それ以外は作成)
'g'(グローバル検索) フラグ戻り値の説明
未指定 [0]:一致文字列
[1] ~:キャプチャ文字列 (名前付きキャプチャも含む)
groups:名前付きキャプチャの連想配列 (キャプチャ名・キャプチャ文字列)
index:マッチ位置 (0~)
input:入力の被検索文字列
length:配列数
(RegExp【正規表現】オブジェクトexec()【検索】と同等の処理)
指定[0] ~:全てのマッチ文字列

const str = "WORD word1 word2 word3 word4 word5";

let result = str.match(/[a-z0-9]+/);
console.log(result.length);  // 出力:1
console.log(result[0]);      // 出力:word1
console.log(result.index);   // 出力:5
console.log(result.input);   // 出力:WORD word1 word2 word3 word4 word5

result = str.match(/[a-z0-9]+/g);
console.log(result);   // 出力:Array(5) ["word1", "word2", "word3", "word4", "word5"]

result = str.match(/[xyz]+/);
console.log(result);  // 出力:null

result = str.match("word");
console.log(result.length);  // 出力:1
console.log(result[0]);      // 出力:word
console.log(result.index);   // 出力:5
console.log(result.input);   // 出力:WORD word1 word2 word3 word4 word5

result = str.match("xyz");
console.log(result);  // 出力:null
const str = "WORD word1 word2 word3 word4 word5";
let result = str.match(/([a-z0-9]+) (?<w2>[a-z0-9]+) ([a-z0-9]+) (?<w4>[a-z0-9]+)/);
console.log(result[0]);  // 出力:word1 word2 word3 word4
console.log(result[1]);  // 出力:word1
console.log(result[2]);  // 出力:word2
console.log(result[3]);  // 出力:word3
console.log(result[4]);  // 出力:word4
console.log(result.groups.w2);  // 出力:word2
console.log(result.groups.w4);  // 出力:word4
console.log(result.index);   // 出力:5
console.log(result.input);   // 出力:WORD word1 word2 word3 word4 word5
console.log(result.length);  // 出力:5