フロントサイドエンジニアという選択肢

HTMLコーダー → ECサイト運営 → システムエンジニア という経歴の著者がフロントサイトエンジニアという職業に今後の活路を見出し、その道に進むために取得した技術を貯めておくブログ

(Jacascript)文字のフォーマットを行う関数

JavascriptにはCのprintfや、C#String.format関数などのように、%d%s等のプレースホルダを使用して文字の置き換えを行う機能を持つ関数が用意されていないようで、とりあえず自作で用意してみました。今後も使えそうなので一応、Tipsとして残しておきます。

var arg1 = 'hoge';
var arg2 = 100;
var text = format('最初の引数は%s、次の引数は%dです。', arg1, arg2);

// テキストのフォーマットを行うメソッド
function format(){
	var text = '';
	var args = arguments;
	
	if(args.length === 1){
		text = arguments[0];
	}
	else{
		var base = args[0];
		// %dや%sを順に置き換える
		for(var i=1; i<args.length; i++){
			base = base.replace(/(%d)|(%s)/, function(){
				if(arguments[0] === '%d'){
					return parseInt(args[i]);
				}
				return args[i];
			});
		}
		text = base;
	}
	return text;
}

上記のサンプルは、textに「最初の引数はhoge、次の引数は10です。」と入ります。一応、%dに数字以外を指定すると”NaN”が入るようになっています。

余談ですが、console.log関数では、標準で上記のようなフォーマットが使用できるようになっています。