【问题标题】:JavaScript format input values to floatJavaScript 将输入值格式化为浮动
【发布时间】:2016-07-18 07:49:12
【问题描述】:

无论输入的格式如何,我都想将不同的输入值转换为浮点数。

例如,这些值:

€ 1500000
€ 1.500.000
1500000
1.500.000

都应该转换成带两位小数的浮点型,例如1500000.00

虽然我能够成功去除欧元符号并去除空格,但我无法将 1.500.000 转换为 1500000.00

这是我目前所拥有的:

var propertyValue2 = $scope.Data.PropertyCost.match(numberPattern);
propertyValue2 = $.trim($scope.Data.PropertyCost).replace(/€/g, '');
propertyValue2 = parseFloat(propertyValue2);
propertyValue2 = propertyValue2.toFixed(2);
console.log(propertyValue2);

我怎样才能达到我想要的结果?

【问题讨论】:

    标签: javascript jquery javascript-objects dom-events


    【解决方案1】:

    使用正则表达式只匹配数字:

    var test = [
      '€ 1500000',
      '€ 1.500.000',
      '1500000',
      '1.500.000'
    ]
    for (var i = 0; i < test.length; i++) {
      console.log(
        test[i],
        'evaluate to',
        parseFloat(test[i].toString().replace(/\D/g, '')).toFixed(2)
      )
    }

    【讨论】:

      【解决方案2】:

      如果你没有点作为小数分隔符,你可以稍微改变一下正则表达式。

      var propertyValue2 = '€ 12.000.123';
      propertyValue2 = propertyValue2.trim().replace(/[€.]/g, '');
      propertyValue2 = +propertyValue2;
      propertyValue2 = propertyValue2.toFixed(2);
      console.log(propertyValue2);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-02
        • 1970-01-01
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多