sprintf的なもの

  • /*
     * @title sprintf的なもの
     * @description 書くとこれだけでも案外長い
     */
    
    
    (function(){
    	if(typeof arguments[0] !="string")return null;
    	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 です。

History

  1. 2014/08/30 14:39:12 - 2014-08-30
  2. 2014/08/30 14:38:30 - 2014-08-30