【JavaScript】文字列の中の、特定の文字を取得する方法
JavaScript

【JavaScript】文字列の中の、特定の文字を取得する方法

作成日:2021年09月19日
更新日:2021年09月19日

movie の変数があるとします。

js
const movie = "オズの魔法使";

movie の 1 番目の文字を取得してみます。

js
movie[0];

console.log();で確認すると、

image2

一文字目である、『オ』が表示されました。

変数の後に、[]を書き、[]の中に 0 から始まる数字を入れることで、指定の文字を取得することができます。

movie の文字列が何文字あるかを調べるには、.lengthを使用します。

js
movie.length;

console.log();で確認すると、

image3

movie の文字列は、6 文字あることがわかりました。

特定の文字が何番目にあるかを調べるには、.indexOf()を使用します。

js
movie.indexOf("の");

console.log();で確認すると、

image4

2 と表示されましたが、カウントは 0 から始まるので、3 番目にあるかとがわかりました。

.indexOf は最初に出てくる文字が何番目にあるかを出力してくれます。

例えば、『オズの魔法使』を『オズの魔法使の』に変更してみると、

image5

結果は、変わりません。

この場合、最後に出力されるのが何番目かを調べ流には、.lastIndexOf()を使用します。

js
movie.lastIndexOf("の");

console.log();で確認すると、

image6

6 と表示されましたが、カウントは 0 から始まるので、7 番目にあるかとがわかりました。

また、複数文字でも検索できます。

js
const movie = "オズの魔法使";
console.log(movie.lastIndexOf("魔法"));

image7

『魔法』と言うワードは、4 番目にあることがわかりました。

特定の位置以降の文字列を取得するには、.slice(〇〇)を使用します。

『〇〇』の中には、特定の位置が入ります。

例えば、3 番目以降の文字列を取得したい時、『〇〇』の中に『3』を入れてしまうと、

js
console.log(movie.slice(3));

image8

4 番目の文字列から始まってしまいました。

これは、.indexOfと同様に、1 文字目の位置のカウントは 0 から始まるからです。

今回は、『〇〇』の中に『2』を入れます。

js
console.log(movie.slice(2));

image9

3 文字目からの取得ができました。

特定の範囲の文字を取得するには、.slice(〇〇,□□)と書きます。

『〇〇』の中には取得したい文字列のはじめの位置、『□□』は、取得したい文字列の位置が入ります。

気をつけていただきたいのは、例えば、3 番目から 5 番目の文字列を出力したい場合、

js
console.log(movie.slice(2, 4));

と書いてしまうと、

image10

なぜか、3 番目と 4 番目の文字列が出力されてしまいます。

これは、『□□』の指定の位置までカウントすると、出力をやめてしまうからです。

つまり、最後の文字列は含まれずに終了してしまいます。

正しい書き方は、こちらになります。

js
movie.slice(2, 5);

console.log();で確認すると、

image11

3 番目から 5 番目の文字が出力されました。

© 2024あずきぱんウェブスタジオ