本帖最后由 fengziba 于 2009-12-24 14:57:53 编辑

解决方案 »

  1.   

    以前收藏的,正好给你<script type="text/javascript">//V1 method
    String.prototype.format = function()
    {
        var args = arguments;
        return this.replace(/\{(\d+)\}/g,                
            function(m,i){
                return args[i];
            });
    } //V2 static
    String.format = function() {
        if( arguments.length == 0 )
            return null;     var str = arguments[0]; 
        for(var i=1;i<arguments.length;i++) {
            var re = new RegExp('\\{' + (i-1) + '\\}','gm');
            str = str.replace(re, arguments[i]);
        }
        return str;
    } var a = "I Love {0}, and You Love {1},Where are {0}! {4}";
    alert(String.format(a, "You","Me")); alert(a.format("You","Me"));
    </script> 
      

  2.   


    <script language="javascript">
    function string_format(str){
      if(str.length < 5){
         var k = 5 - str.length;
         for(var i = 0 ; i < k ; i++){   
       str = "0" + str;
       
     }
      }
      return str;
    }
    alert(string_format("2"));
    </script>
      

  3.   


    var formats = {
                '%': function(val) { return '%'; },
                'b': function(val) { return parseInt(val, 10).toString(2); },
                'c': function(val) { return String.fromCharCode(parseInt(val, 10)); },
                'd': function(val) { return parseInt(val, 10) ? parseInt(val, 10) : 0; },
                'u': function(val) { return Math.abs(val); },
                'f': function(val, p) { return (p > -1) ? Math.round(parseFloat(val) * Math.pow(10, p)) / Math.pow(10, p) : parseFloat(val); },
                'o': function(val) { return parseInt(val, 10).toString(8); },
                's': function(val) { return val; },
                'S': function(val, p) { var len = p - val.toString().length; for (i = 0; i < len; i++) val = '0' + val; return val; },
                'x': function(val) { return ('' + parseInt(val, 10).toString(16)).toLowerCase(); },
                'X': function(val) { return ('' + parseInt(val, 10).toString(16)).toUpperCase(); }
            };        var re = /%(?:(\d+)?(?:\.(\d+))?|\(([^)]+)\))([%bcdufosSxX])/g;        var dispatch = function(data) {
                if (data.length == 1 && typeof data[0] == 'object') {
                    data = data[0];
                    return function(match, w, p, lbl, fmt, off, str) {
                        return formats[fmt](data[lbl]);
                    };
                } else {
                    var idx = 0;
                    return function(match, w, p, lbl, fmt, off, str) {
                        return formats[fmt](data[idx++], p);
                    };
                }
            };        String.prototype.sprintf = function() {
                //var argv = Array.apply(null, arguments);
                return this.replace(re, dispatch(arguments));
            }
            String.prototype.vsprintf = function(data) {
                return this.replace(re, dispatch(data));
            }        //sprintf
            var classixxc = '%.5S'.sprintf(10);
            alert(classixxc)
            //classic = '00010'
            var classic = '%s %d% %.3f'.sprintf('string', 40, 3.141593);
            alert(classic)
            // classic = 'string 40% 3.142'
            var named = '%(name)s: %(value)d'.sprintf({ name: 'age', value: 40 });
            alert(named)
            //named = 'age: 40'
            //vsprintf
            var classisc = '%s %d% %.3f'.vsprintf(['string', 40, 3.141593]);
            alert(classisc)
            // classisc = 'string 40% 3.142'