Javascript numeric format output of the implementation code

  • 2020-03-30 00:45:25
  • OfStack


<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'))                         //The output     123.00
alert(format(123, '0.##'))                         //The output     123
alert(format(123, '0000.00 '))                     //The output     0123.00
alert(format(123456, '###,###.00'))                //The output     123456.00
</script>

Related articles: