プログラミング

Javascript 文字列

文字列へのアクセス

文字列の特定の位置にある文字にはインデックスを指定してアクセスできます。
これは、配列における要素へのアクセスにインデックスを指定するのと同じです。
文字列では文字列[インデックス]のように指定した位置の文字へアクセスできます。

const str = "プログラミング";

// 配列と同じようにインデックスでアクセスできる

console.log(str[0]);

console.log(str[1]);

console.log(str[2]);

文字列の分解と結合

文字列を分解して配列にするにはsplitを利用できます。

const strings = "HTML・CSS・JavaScript".split("・");

console.log(strings);

分解してできた文字列の配列を結合して文字列を作る際に、joinが利用できます。
joinの第一引数に文字を指定し、配列が区切られているカンマに対して第一引数で指定された文字に置き換え結合した文字列を返します。

const str = "HTML・CSS・JavaScript".split("・").join("、");

console.log(str);

文字列の長さ

lengthは文字列の要素数を返します。

const str = "プログラミング";

console.log(str.length);

文字列の比較

文字列の比較には「===」を利用します。
同じ文字列同士なら結果はtrueとなり、違う場合はfalseとなります。

console.log("プログラミング" === "プログラミング");

console.log("PHP" === "Ruby");

文字列の一部を取得

文字列からその一部を取り出したい場合には、sliceやsubstringが利用できます。
sliceについては、すでに配列で学んでいますが、基本的な動作は文字列でも同様です。
まずはsliceについて説明します。
sliceは、第一引数に開始位置、第二引数に終了位置を指定し、その範囲を取り出して新しい文字列を返します。
第二引数は省略でき、省略した場合は文字列の末尾が終了位置となります。

const str = "プログラミング";

console.log(str.slice(2, 5));

console.log(str.slice(2));

substringは、sliceと同じく第一引数に開始位置、第二引数に終了位置を指定し、その範囲を取り出して新しい文字列を返します。 第二引数を省略した場合の挙動も同様で、省略した場合は文字列の末尾が終了位置となります。

const str = "プログラミング";

console.log(str.substring(2, 5));

console.log(str.substring(2));

sliceやsubstringはindexOfなど位置を取得するものと組み合わせて使うことが多いです。
次のコードでは、?の位置をindexOfで取得し、それ以降の文字列をsliceで切り出しています。

const url = "https://example.com?param=1";

const indexOfQuery = url.indexOf("?");

const queryString = url.slice(indexOfQuery);

console.log(queryString);

文字列の検索

文字列から指定した要素を検索する方法には、 主に次の3つがあります。

  • 文字列のインデックスを取得
  • 文字列自体を取得
  • 文字列が含まれているかを取得

文字列によるインデックスの取得

指定した要素が文字列のどの位置にあるかを知りたい場合、indexOfを利用します。
indexOfは引数と一致する要素が場合その要素のインデックスを返し、該当する要素がない場合は-1を返します。 

const str = "HTMLとCSSとJavaScriptとPHP";

const indexOfJS = str.indexOf("JavaScript");

console.log(indexOfJS);

文字列にマッチした文字列の取得

文字列を検索してマッチした文字列は、検索文字列そのものになるので自明です。
次のコードではScriptという文字列で検索していますが、その検索文字列にマッチする文字列はもちろんScriptになります。

const str = "JavaScript";

const searchWord = "Script";

const index = str.indexOf(searchWord);

if (index !== -1) {

    console.log(`${searchWord}が見つかりました`);

} else {

    console.log(`${searchWord}は見つかりませんでした`);

}

文字列が含まれているかの取得

「文字列」に「検索文字列」が含まれているかを検索するにはincludesを使用します。

const str = "HTMLとCSSとJavaScriptとPHP";

console.log(str.includes("PHP"));

-プログラミング