slice・substr・substring・charAtで文字列を切り出す

JavaScriptを使って文字列の一部を切り出す処理を色々試してみます。

slice(beginSlice[, endSlice])

beginSliceからendSliceまでの文字列を切り出して返します。
両方とも0から始まるインデックスで、マイナスの値の場合は最後からの位置になります。
endSliceが省略されている場合は最後まで切り出します。

JavaScript

var str = '1234567890';

// 先頭から3文字目
console.log(str.slice(0, 3)); // 123

// 3文字目~7文字目まで
console.log(str.slice(2, 7)); // 34567

// 5文字目~最後まで
console.log(str.slice(4)); // 567890

// 7文字目~最後から2文字目まで
console.log(str.slice(6, -1)); // 789

// 最後から6文字目~最後から3文字目まで
console.log(str.slice(-6, -2)); // 5678

// 最後から5文字目~先頭から8文字目まで
console.log(str.slice(-5, 8)); // 678

// 最後から4文字
console.log(str.slice(-4)); // 7890

slice()のデモページ
 

substr(start[, length])

startの位置からlengthの数だけ切り出して返します。
startは0から始まるインデックスで、マイナスの値の場合は最後からの位置になります。
lengthが省略されている場合は最後まで切り出します。

JavaScript

var str = '1234567890';

// 先頭から3文字目
console.log(str.substr(0, 3)); // 123

// 3文字目~5文字
console.log(str.substr(2, 5)); // 34567

// 5文字目~最後まで
console.log(str.substr(4)); // 567890

// 最後から5文字目~3文字
console.log(str.substr(-5, 3)); // 678

// 最後から4文字目~最後まで
console.log(str.substr(-4)); // 7890

substr()のデモページ
 

substring(indexA[, indexB])

indexAからindexBまでの文字列を切り出して返します。
両方とも0から始まるインデックスで、マイナスの値やNaNの場合は0として扱われます。
indexAがindexBより大きい値の場合は引数が逆になり、indexBが省略されている場合は最後まで切り出します。

JavaScript

var str = '1234567890';

// 先頭から3文字目
console.log(str.substring(0, 3)); // 123

// 3文字目~7文字目まで
console.log(str.substring(2, 7)); // 34567

// 5文字目~最後まで
console.log(str.substring(4)); // 567890

// 0未満、NaNの場合は0として扱われる
console.log(str.substring(-5, 3)); // 123

// 第1引数 > 第2引数の場合、引数が交換される
console.log(str.substring(5, -3)); // 12345

substring()のデモページ
 

charAt(index)

0から始まるインデックスで、index番目の文字列を切り出して返します。

JavaScript

var str = '1234567890';

// 1文字目
console.log(str.charAt(0)); // 1

// 5文字目
console.log(str.charAt(4)); // 5

// 最後の文字
console.log(str.charAt(str.length - 1)); // 0

charAt()のデモページ
 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

コメントが承認されるまで時間がかかります。

2021年4月
 123
45678910
11121314151617
18192021222324
252627282930