Stringクラス 文字列の検索とか置換とか分割とか

文字列の長さ

JavaScriptの文字列は内部的にUTF-16で扱われる。なので英語でも日本語でも記号でも1文字は1文字としてカウント

var str1 = "aiueo";
var str2 = "日本語";
var str3 = "aA1#";
console.log(str1.length);	// 5
console.log(str2.length);	// 3
console.log(str3.length);	// 4

指定位置の文字取得

指定した位置の1文字を取得するにはString[位置]で取得可能。文字列はStringオブジェクトの配列なんですね。

指定位置から文字数を決めて取得する時はsubstring(開始位置,文字数)で指定数の文字が取得出来る。

var str4 = "Hello123";
for(var i = 0; i < str4.length; i++){
	// 指定位置の文字を取得
	console.log(str4[i]); // H,e,l,l,o,1,2,3
}

// 指定位置から文字数を決めて取得
console.log(str4.substring(0,5)); 	// Hello
console.log(str4.substring(5,10)); 	// 123

文字列の置換

文字列を任意の文字列で置換する時は、置換前の文字列.replace(置換元,置換後)。
該当箇所が複数ある時は、先頭から見つかった最初の部分が置換される。

var str5 = "My name is Taro.";
str5 = str5.replace("Taro","Hanako");	// 文字列の置換
console.log(str5); 	// My name is Hanako.

var str6 = "ウルトラ タロー タロー タロー ";
str6 = str6.replace("タロー","セブン");	// 文字列の置換
console.log(str6); 	// ウルトラ セブン タロー タロー 

str6 = str6.replace("タロー","セブン");	// 文字列の置換
console.log(str6); 	// ウルトラ セブン セブン タロー 

str6 = str6.replace("タロー","セブン");	// 文字列の置換
console.log(str6); 	// ウルトラ セブン セブン セブン 

大文字小文字の置換はtoUpperCaseやtoLowerCaseを使う

var str7 = "hogeHogeHOGE";
console.log(str7.toUpperCase());	// HOGEHOGEHOGE
console.log(str7.toLowerCase());	// hogehogehoge

文字列の検索

文字列中の指定文字列の位置を求める時は
前方から検索する時→文字列.indexOf(指定文字列)。または文字列.search(指定文字列)
後方から検索する時→文字列.lastIndexOf(指定文字列)

var str7 = "なまむぎなまごめなまたまご";
console.log(str7.indexOf("なま"));		// 0
console.log(str7.search("なま"));		// 0
console.log(str7.lastIndexOf("なま"));	// 8

文字列の分割

何かと便利なのが文字列の分割。csvファイルのレコード分割とかカラム分割とか。

var str8 = "1号,2号,V3";
var rider = str8.split(",");
for (var i=0; i<rider.length; i++){
	console.log(rider[i]); 		// 1号 2号 V3
}

var str9 = "アマゾン\tX\tストロンガー";
console.log(str9);
var rider = str9.split("\t");
for (var i=0; i<rider.length; i++){
	console.log(rider[i]); 		// アマゾン X ストロンガー
}