Node.jsで使いそうな文字列操作ライブラリ
軽めのネタで。
良く使いそうな文字列操作や文字コード操作ライブラリを調べてみました。
ちなみに、package.jsonに入れてもらうように、npm installに--saveオプション付けてます。
sprintf
フォーマットを用いた文字列組み立て用のライブラリです。一般的な書式を使ったものから、配列やオブジェクトからの組み立てもできます。
$ npm install sprintf --save
sprintf = require('sprintf').sprintf vsprintf = require('sprintf').vsprintf // %2$s で2番目の文字を出力します。 console.log(sprintf('SELECT %2$s FROM %3$s LIMIT %1$d', 10, 'name', 'users')); // vsprintfでは配列を出力します console.log(vsprintf('SELECT %s, %s, %s FROM %s', ['name', 'age', 'gender', 'users'])); // オブジェクトを出力します。%(プロパティ名)s で指定します。 param = {column:'name', table:'users'}; console.log(sprintf('SELECT %(column)s FROM %(table)s', param)); // オブジェクトの配列も出力可能 params = [ {column: 'name'}, {column: 'age'}, {column: 'gender'} ]; console.log(sprintf('SELECT %(params[0].column)s, %(params[1].column)s, %(params[2].column)s FROM users', {params: params}));
Buffer
デフォルトで組み込まれています。多少の文字コード変換から、base64のエンコード・デコードができます。使える文字コード・形式一覧。
var utf8_text = '日本語'; console.log(utf8_text); var utf8_buffer = new Buffer(utf8_text, 'utf8'); //UTF-8として作成 var base64_text = utf8_buffer.toString('base64'); //base64エンコード console.log(base64_text); var base64_buffer = new Buffer(base64_text, 'base64'); var decoded = base64_buffer.toString('utf8'); //base64文字列をデコード console.log(decoded);
iconv
文字コードの変換ライブラリです。敢えて説明する必要もないでしょうね。
使える文字コード・形式一覧。
$ npm install iconv --save
var text = '日本語'; var iconv = require('iconv'); //var conv = new iconv.Iconv(エンコード元,エンコード先); var conv = new iconv.Iconv('utf8', 'sjis'); console.log(conv.convert(text).toString());
bufferpack
文字列をpack/unpackする場合に使えそうです。
他にnode-jspackやnode-binaryというのもあるようです。
フォーマット一覧。
$ npm install bufferpack --save