stringFormat("123",5),函数返回"00123"
stringFormat("123456",5),函数返回"123456"
stringFormat("0ads",8),函数返回"00000ads"
function stringFormat(str,number){//第一个参数传入的字符串,第二个参数一共显示多少位。}
//各位大大帮忙实现下这个函数吧,返回值就是补完0的字符串。请帮忙用正则实现,谢谢。

解决方案 »

  1.   


    function stringFormat(str, length) {
      return (str.length < length ? new Array(length - str.length + 1).join('0') : "") + str;
    }
      

  2.   

    String.prototype.stringFormat= function(n){return this.toString().length >= n ? this : (Array(n).join(0) + this).slice(-n);}这种写法已有,而且比你更简便,我需要的是正则,谢谢
      

  3.   

    function stringFormat(str, length) {
      return (str.length < length ? new Array(length - str.length + 1).join('0') : "") + str;
    }
      

  4.   

    简单写一下,木有做健壮性检测。<script type="text/javascript">
    function stringFormat(str,number){//第一个参数传入的字符串,第二个参数一共显示多少位。
        var r = new RegExp('((?:0{'+(number-str.length)+'})?'+str+')$','i');
        return (new Array(number+1).join('0')+str).match(r)[0];
    }alert(stringFormat("123",5));
    alert(stringFormat("123456",5));
    alert(stringFormat("0ads",8));
    </script>
      

  5.   

    <script type="text/javascript">
    var stringFormat = function (s, n, v) {
    return new Array(n + 1).join(v || '0').replace(new RegExp('.{0,' + s.length + '}$'), s);
    };alert(stringFormat("123",5));
    alert(stringFormat("123456",5));
    alert(stringFormat("0ads",8));var stringFormat = function (s, n, v) {
    return new Array(Math.max(0, n - s.length) + 1).join(v || '0') + s;
    };alert(stringFormat("123",5));
    alert(stringFormat("123456",5));
    alert(stringFormat("0ads",8));
    </script>