Jquery UI 范围滑块 - 将数字转换为货币

Jquery UI Range Slider - Convert number to currency

本文关键字:数字 转换 货币 UI 范围 Jquery      更新时间:2023-09-26

我目前正在使用范围滑块,价格范围为 0 英镑到 2,000,000 英镑。目前,除了价格未格式化为货币外,一切正常(即 500,000 英镑的价值目前显示为 500000 英镑 - 不带逗号)。代码如下:

jQuery

  /* SALES SLIDER */ 
  $( "#slider-range-price-sales" ).slider({
  range: true,
  min: 0,
  max: 2000000,
  step: 50000,
  values: [ 0, 2000000],
  slide: function( event, ui ) {
      $("#minPrice").val("£" + ui.values[0]).toString().replace(/('d)(?=('d{3})+(?!'d))/g, "£1");
      $("#maxPrice").val("£" + ui.values[1]);
  }
});
$("#minPrice").val("£" + $("#slider-range-price-sales").slider("values", 0));
$("#maxPrice").val("£" + $("#slider-range-price-sales").slider("values", 1));

.HTML

<div id="slider-range-price-sales"></div>
<div class="priceContainer">
   <div class="left"><input type="text" id="minPrice" name="minPrice" style="border: 0; color: #3D80E9; background:#F2F2F2; font-weight: bold;" /></div>
   <div class="right"><input type="text" id="maxPrice" name="maxPrice" style="border: 0; color: #3D80E9; background:#F2F2F2; font-weight: bold;" /></div>
</div>

http://jsfiddle.net/isherwood/RwfFH/

我尝试使用JavaScript .replace 重新格式化最低价格,但无济于事......任何帮助或建议将不胜感激。

谢谢jamie

为了与你正在做的事情保持一致,你只需要做一些改变。我会指出,在 .val() 操作中设置值之前,您需要修改该值。此外,replace 返回一个新字符串,它不会修改原始字符串。完成此操作后,您只需要在正则表达式中进行一些调整,$1,将使用匹配的值替换。

$("#minPrice").val("£" + ui.values[0].toString().replace(/('d)(?=('d{3})+(?!'d))/g, "$1,"));
您可以使用

此功能根据需要添加逗号

function addCommas(nStr){
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /('d+)('d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

和 jsFiddle : http://jsfiddle.net/RwfFH/1/。