文字列操作 (Javascript)
[履歴] [最終更新] (2015/02/01 00:45:09)

概要

JavaScriptにおける文字列はオブジェクトではありませんが、下記のようにメソッド呼び出しなどができます。この背景としては、裏で文字列のラッパークラスStringのインスタンスが自動で生成されそのメソッドが呼び出されている、というのがあります。なお、他にも数値にはNumberクラス、真偽値にはBooleanクラスというラッパークラスがあります。基本データ型にラップクラスが用意されている点は、Javaとよく似ていますね。

sample.js

var str = "This is a string."
// var str = new String("This is a string."); // としても同じです

// インデックスによるアクセス
console.log(str[str.length-1]); // 実装によってはエラー (非推奨)
console.log(str.charAt(str.length-1)); //推奨

// 部分文字列
console.log(str.substr(1,2)); // substr(fromIndex, subStrLen)

// 文字列の場所を検索
console.log(str.indexOf('his')); // 前方から検索して最初に見つかった位置
console.log(str.lastIndexOf('his')); // 後方から検索して最初に見つかった位置
console.log(str.indexOf('hoge')); // 見つからなければ -1 が返される

// 文字列を指定した文字列で分割
console.log(str.split(' '));

// 小文字 ←→ 大文字に変換
console.log(str.toLowerCase());
console.log(str.toUpperCase());

// 数値を文字列に変換
var num = 128;
str = num.toString();
console.log(str);

// 文字列を数値に変換
console.log(parseInt("128"));
console.log(parseInt("128.8"));
console.log(parseFloat("128.8"));

// URI エンコーディング
str = ' %|"#&$+/@!;:,.()-*~_';
console.log(encodeURI(str));          //=> %20%25%7C%22#&$+/@!;:,.()-*~_
console.log(encodeURIComponent(str)); //=> %20%25%7C%22%23%26%24%2B%2F%40!%3B%3A%2C.()-*~_

// URI デコーディング
console.log(decodeURI(encodeURI(str)));                   //=>「 %|"#&$+/@!;:,.()-*~_」
console.log(decodeURIComponent(encodeURIComponent(str))); //=>「 %|"#&$+/@!;:,.()-*~_」

実行例

$ node sample.js 
.
.
hi
1
1
-1
[ 'This', 'is', 'a', 'string.' ]
this is a string.
THIS IS A STRING.
128
128
128
128.8
%20%25%7C%22#&$+/@!;:,.()-*~_
%20%25%7C%22%23%26%24%2B%2F%40!%3B%3A%2C.()-*~_
 %|"#&$+/@!;:,.()-*~_
 %|"#&$+/@!;:,.()-*~_
関連ページ
    概要 AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは