【问题标题】:Regex add 0 after first decimal正则表达式在第一个小数点后加 0
【发布时间】:2012-01-11 10:54:33
【问题描述】:

我目前正在学习正则表达式,但非常迫切需要这个。

我有一组值(10, 19.5, 13.99, 9.09)。除了第二个值之外,这些格式都很好。

我的问题是如何重写,使 19.5 变为 19.50 而不会影响其他条目,即 (10, 19.50, 13.99, 9.09)

非常感谢各位。

【问题讨论】:

  • 只要是数字变量,右边的零(小数点后)将被删除,除非您希望它们为字符串。

标签: javascript regex currency


【解决方案1】:

如果这些是数字,使用 toFixed()

如果这些是字符串,你可以使用

num="19.5"
num.replace(/^(\d+\.\d)$/,"$10");

【讨论】:

  • 或者将字符串转换为数字。
  • 像魅力一样工作。谢谢大家!
【解决方案2】:

搜索:

(\.\d)(\D|$)

这是一个点后跟一个数字,然后是一个不是数字(或字符串结尾)的东西。

替换为:

$10$2

这是第一个捕获组,然后是“0”,然后是第二个捕获组。

var s = '10, 19.5, 13.99, 9.9';
s = s.replace(/(\.\d)(\D|$)/g, '$10$2');
// s == '10, 19.50, 13.99, 9.90'

【讨论】:

    【解决方案3】:

    例如,迭代每个值:

    var value = '19.5';
    value = value.replace(/^\d+[\.,]\d{1}$/, '$&0');
    

    【讨论】:

      【解决方案4】:

      如果你想使用 RegEx,你可以这样做:

      "10, 19.5, 13.99, 9.09".replace(/^\d+\.\d{1}$/g, function (full) {
          return full + "0";
      });
      

      这将返回"10, 19.50, 13.99, 9.09"

      【讨论】:

      • 这是不正确的。首先,启用/g 说明符。这将用 13.909 替换 13.99。
      • 这与.replace(/^\d+\.\d{1}$/g, '$&0') 相同 - 在这种情况下您不需要回调函数。此外,$ 只会匹配最后一个位置(如果输入是单个数字,而不是整个列表,则它是正确的),并且{1} 根据定义不执行任何操作。我建议您运行代码并查看其结果...
      【解决方案5】:

      试试这个

      var array = [10, 19.5, 13.99, 9.09];
      for(var i=0; i< array.length;i++){
          if(/[0-9].[0-9]{1}$/.test(array[i]))  array[i] = array[i]+'0';
      }
      alert(array);
      
      OUTPUT : 
      
      10, 19.50, 13.99, 9.09
      

      小提琴:http://jsfiddle.net/M9hZx/

      【讨论】:

        【解决方案6】:

        编辑答案:

        <script type="text/javascript">
        var num = 19.9;
        if(String(num).indexOf('.')>-1)
        {
            num = num.toFixed(2);
        }
        alert(num);
        </script>
        

        直接的答案是使用“.toFixed(2)”,但我们会验证它是否是小数,这样我们就不会得到像“10.00”这样的结果

        对于更多的格式化选项,你有 jquery 插件 numberformatter:

        http://archive.plugins.jquery.com/project/numberformatter
        

        这是项目网页:

        http://code.google.com/p/jquery-numberformatter/

        这个库的直接链接:

        http://jquery-numberformatter.googlecode.com/files/jquery.numberformatter-1.2.2.jsmin.js

        【讨论】:

        • 这会将10 更改为10.00,但我想检查整数很容易。
        猜你喜欢
        • 1970-01-01
        • 2018-07-16
        • 2015-01-02
        • 2015-04-29
        • 1970-01-01
        • 1970-01-01
        • 2020-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多