javascript 数字格式化输出的实现代码

复制代码 代码如下:

  <script type="text/javascript">

  var format = function (number, form) {

  var forms = form.split('.'), number = '' + number, numbers = number.split('.')

  , leftnumber = numbers[0].split('')

  , exec = function (lastMatch) {

  if (lastMatch == '0' || lastMatch == '#') {

  if (leftnumber.length) {

  return leftnumber.pop();

  } else if (lastMatch == '0') {

  return lastMatch;

  } else {

  return '';

  }

  } else {

  return lastMatch;

  }

  }, string

  string = forms[0].split('').reverse().join('').replace(/./g, exec).split('').reverse().join('');

  string = leftnumber.join('') + string;

  if (forms[1] && forms[1].length) {

  leftnumber = (numbers[1] && numbers[1].length) ? numbers[1].split('').reverse() : [];

  string += '.' + forms[1].replace(/./g, exec);

  }

  return string.replace(//.$/, '');

  };

  alert(format(123, '#.00'))                         //输出   123.00

  alert(format(123, '0.##'))                         //输出   123

  alert(format(123, '0000.00 '))                     //输出   0123.00

  alert(format(123456, '###,###.00'))                //输出   123,456.00

  </script>