文字列の長さ
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 ストロンガー
}