【问题标题】:javascript regex moneyjavascript 正则表达式 钱
【发布时间】:2012-10-02 12:16:27
【问题描述】:

我正在尝试删除从 json 提要中提取的货币值的十进制值:

如果我喜欢:150,000 我只想拥有 150

这是我的代码:

$.getJSON('/static/js/datatest.json', function (result){

  $.each(result.events, function(i, item){
    $('#isoContainer').append('<h3>&pound;<span class="value">' + item.value.replace(/\.0{0,2}$/, "") + '</span></h3>');               
  });   
});

为什么这不起作用item.value.replace(/\,0{0,3}$/, "")

【问题讨论】:

  • 您的代码使用了{0,2} 限制器,但您随后(正确)使用了{0,3} ...

标签: javascript jquery ajax regex json


【解决方案1】:

因为你转义了逗号,所以正确的版本是

/,0{0,3}$/

或者如果它没有走到行尾,就

/,0{0,3}/

编辑:

如果你可以在, 之后有非零值,那么这是正确的

/,\d{0,3}/

编辑 2:

还要检查您在“文化”中使用的 , 表示小数位的开头,而不是千位分隔符

【讨论】:

    【解决方案2】:

    您提供的代码在正则表达式中使用.,而不是,

    【讨论】:

      【解决方案3】:

      这行得通:

      "150,000".replace(/,(0|00|000)$/, "") // "150"
      

      $ 表示字符串的结尾,除此之外,它是简单的正则表达式。

      【讨论】:

        【解决方案4】:

        你为什么不用parseInt()

        > parseInt("150,000");
        150
        > parseInt("150.000");
        150
        

        【讨论】:

          猜你喜欢
          • 2013-02-26
          • 2016-03-04
          • 2012-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多