sprintf的なもの
by
mafucode
2014-08-30 [2014/08/30 14:39:12]
書くとこれだけでも案外長い
/*
* @title sprintf的なもの
* @description 書くとこれだけでも案外長い
*/
(function(){
if(typeof arguments[0] !="string")return null;
console.log(arguments);
var x,y,i,j,k,l;
y="";
x=1;
i=0;
j=arguments[0].length;
k=false;
while(i<j){
var a=arguments[0].charAt(i);
if(k){
switch(a){
case 's':
y+=arguments[x].toString();
x+=1;
k=false;
break;
case 'd':
y+=arguments[x].toString();
x+=1;
k=false;
break;
case 'x':
y+=arguments[x].toString(16).toLowerCase();
x+=1;
k=false;
break;
case 'X':
y+=arguments[x].toString(16).toUpperCase();
x+=1;
k=false;
break;
case '%':
y+=a;
k=false;
break;
default:
break;
}
}else{
if(a=='%')k=true;else y+=a;
}
i+=1;
}
return y;
})("なまえ:%s HP:%d\n……とこのように%%dや%%sなどの部分が文字列や数値になったものをいろいろする関数がC言語とかにあるしそこそこ使う\n\n全部使う例は思いつかなかった。\nあと今回は面倒なので%sだけにしておいた","アンデッドセレブ",17964,"%sとか%dとか%%そういうよく使いそうな部分");
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。