JavaScript String メソッド

❮ 前章へ 次章へ ❯

String メソッドは、文字列を処理するのに役立ちます。


String メソッドとプロパティ

"John Doe" のようなプリミティブな値は、オブジェクトではないので、プロパティやメソッドを持つことはできません。

しかしJavaScriptでは、メソッドやプロパティを実行する際にプリミティブ値をオブジェクトとして扱うため、 メソッドやプロパティはプリミティブ値でも使用できます。


文字列の長さ

length プロパティは、文字列の長さを返します:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
Try it Yourself »

文字列内の文字列検索(finding)

indexOf() メソッドは、指定のテキストが文字列内で最初に出現した(位置の)インデックスを返します:

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");
Try it Yourself »

lastIndexOf() メソッドは、指定のテキストが文字列内で最後に出現したインデックスを返します:

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");
Try it Yourself »

テキストが見つからない場合、iindexOf() および lastIndexOf() メソッドは -1 を返します。

JavaScript は、位置をゼロからカウントします。
0 は文字列の先頭位置、1 は 2 番目、2 は 3 番目 ...の文字列です。

どちらのメソッドも、検索の開始位置として第 2 パラメータの指定が可能です。


文字列内の文字列検索(searching)

search() メソッドは、文字列から指定の値を検索し、一致する位置を返します:

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");
Try it Yourself »

気づきましたか?

indexOf() と search() の2つのメソッドは同じです。

指定する引数(パラメータ)が同じで、同じ結果を返します。

2つのメソッドは同等ですが、search() メソッドではさらに強力な検索値が使用できます。

強力な検索値の詳細については、正規表現に関する章を参照してください。


文字列の一部抽出

T文字列の一部を抽出する方法が3つあります:


slice() メソッド

slice() は、文字列の一部を抽出し、新しい文字列にその抽出した部分を返します。

このメソッドには、開始インデックス(位置)と終了インデックス(位置)の 2 つのパラメータを指定します。

次の例では、位置 7 から位置 13 までの文字列の一部をスライスします:

var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);

result of res will be:

Banana
Try it Yourself »

パラメータが負の場合、位置は文字列の最後から数えます。

この例では、位置 -12 から位置 -6 までの文字列の一部をスライスします:

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);

result of res will be:

Banana
Try it Yourself »

2 番目のパラメータを省略すると、メソッドは文字列の残りの部分(文字列の最後まで)をスライスします:

var res = str.slice(7);
Try it Yourself »

最後から数える場合:

var res = str.slice(-12);
Try it Yourself »

負の値の位置は、Internet Explorer 8 以前では機能しません。


substring() メソッド

substring() は、slice() と似ています。

違いは、substring() には負のインデックスを指定できないことです。

var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);

res の結果は次のようになります:

Banana
Try it Yourself »

2 番目のパラメータを省略すると、substring() は文字列の残りの部分をスライスします。


substr() メソッド

substr() は、slice() と似ています。

違いは、2 番目のパラメータは抽出する部分の長さを指定することです。

var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);

res の結果は次のようになります:

Banana
Try it Yourself »

最初のパラメータが負の場合、位置は文字列の最後からカウントします。

2番目のパラメータは、長さを定義するため、負にすることはできません。

2番目のパラメータを省略すると、substr() は文字列の最後までをスライスします。


文字列コンテンツの置換

replace() メソッドは、文字列内の指定した値を別の値に置き換えます:

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3Schools");
Try it Yourself »

replace() メソッドは、検索値として正規表現を指定することもできます。

デフォルトでは、replace() 関数は最初に一致したものだけを置換します。 すべての一致を置換するには、g フラグ付き(グローバル一致用)の正規表現を使用します:

str = "Please visit Microsoft!";
var n = str.replace(/Microsoft/g, "W3Schools");
Try it Yourself »

replace() メソッドは、元の文字列を変更せずに、新しい文字列を返します。


大文字・小文字変換

toUpperCase() は、文字列を大文字に変換します:

var text1 = "Hello World!";       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper
Try it Yourself »

toLowerCase() は、文字列を小文字に変換します:

var text1 = "Hello World!";       // String
var text2 = text1.toLowerCase();  // text2 is text1 converted to lower
Try it Yourself »

concat() メソッド

concat() は、2つ以上の文字列を結合します:

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ", text2);
Try it Yourself »

concat() メソッドは、プラス演算子の代わりに使用することができます。 次の2つの行の値は同じです:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");

すべての string メソッドは新しい文字列を返します。元の文字列は変更しません。
形式的に言えば:文字列は変更不可能です:文字列は変更できません。置き換えるだけです。


文字列の文字を抽出

文字列の文字を抽出するには、2つの安全なメソッドがあります:


charAt() メソッド

charAt() メソッドは、文字列内の指定されたインデックス(位置)にある文字を返します:

var str = "HELLO WORLD";
str.charAt(0);            // returns H
Try it Yourself »

charCodeAt() メソッド

charCodeAt() メソッドは、文字列内の指定されたインデックスにある文字のユニコードを返します:

var str = "HELLO WORLD";

str.charCodeAt(0);         // returns 72
Try it Yourself »

配列としての文字列へのアクセスは安全ではありません

配列として文字列にアクセスする、次のようなコードを見たことがあかもしれません:

var str = "HELLO WORLD";

str[0];                   // returns H

これは、安全でなく予測不能です:

配列として文字列を読みたい場合は、最初に配列に変換します。


文字列を配列に変換

文字列は、split() メソッドを使って配列に変換できます:

var txt = "a,b,c,d,e";   // String
txt.split(",");          // Split on commas
txt.split(" ");          // Split on spaces
txt.split("|");          // Split on pipe
Try it Yourself »

セパレータを省略すると、配列には文字列全体が index [0] に格納されます。

セパレータが "" の場合、配列は1文字ずつの配列になります:

var txt = "Hello";       // String
txt.split("");           // Split in characters
Try it Yourself »

完全な文字列リファレンス

完全なリファレンスについては、完全な JavaScript 文字列リファレンスをご覧ください。

このリファレンスには、すべての文字列のプロパティとメソッドの説明と例が含まれています。


練習問題による自己診断

Exercise 1 »  Exercise 2 »  Exercise 3 »  Exercise 4 »  Exercise 5 »  Exercise 6 »


❮ 前章へ 次章へ ❯