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());

EUCJP-WINはパッチをあてないといけないみたいです。

bufferpack

文字列をpack/unpackする場合に使えそうです。
他にnode-jspacknode-binaryというのもあるようです。
フォーマット一覧

$ npm install bufferpack --save


Node.js/PHPでの様々な文字列ハッシュの生成 - ZeBeVogue別館もどうぞ。