文字列内の1文字を取得する/1文字ずつループ処理する (charAt) | まくまくJavaScriptノート
...
文字列内の1文字を取得する
ECMAScript の仕様に従うのであれば、文字列内の任意の位置の文字を取得するには charAt() を使用する。
ただ、JavaScript の独自拡張では、以下のように数値プロパティで任意の位置の文字を取り出せるため、環境依存のコードでもよいのであれば、こちらのシンプルな方法もある。
var s = 'ABCDE';
console.log(s.charAt(2)); //=> 'C'
console.log(s[2]); //=> 'C'
1文字ずつループ処理する
文字列の長さだけ for ループを回せば、文字列内の文字を1文字ずつ処理することができる。
var s = 'ABCDE';
for (var i = 0; i < s.length; ++i) {
console.log((i + 1) + '文字目: ' + s.charAt(i));
}
// 1文字目: A
// 2文字目: B
// 3文字目: C
// 4文字目: D
// 5文字目: E
split メソッドで1文字ずつの配列に分割し、その配列をループ処理するという方法もある。
var s = 'ABCDE';
var arr = s.split('');
for (var i = 0; i < arr.length; ++i) {
console.log((i + 1) + '文字目: ' + arr[i]);
}
文字列内の1文字だけ変更することはできない
JavaScript の文字列は不変 (immutable) なので、以下のように文字列内の1文字を変更するような操作はできない。
s[2] = 'X'; // NG