2014-02-21 56 views
1

我需要使用javascript替換textare中的所有非數字字符。我們的客戶想要刪除非數字,例如1,330.00變爲1330.00。Javascript正則表達式替換所有非貨幣字符

我可以替換除小數點以外的所有非數字,但是這允許多個小數位。

我的代碼 http://jsbin.com/vetedeca/1/edit?html,output

 

    $(document).ready(function(){ 
     $('input').bind('keyup', function() { 
      var value = $(this).val() 

      value = value.replace(/[^\d\.]+/g,''); 

      $(this).val(value); 
     }) 
     }) 

如何修改這個刪除除了一個小數位

中首次出現的所有非數字的jsbin如 1,330.00變爲1330.00 1,330.00。 00變爲1330.00 133o.00d.33變爲133.00

回答

0

您可以使用此替換:

var repl = s.replace(/^(.+?\.\d+).+/g, "$1").replace(/[^\d.]+/g, ""); 
0

我設法找到了解決多點問題的方法。

我添加使用.replace()另一行:

$(document).ready(function(){ 
    $('input').bind('keyup', function() { 
    var value = $(this).val() 

    value = value.replace(/[^\d\.]+/g,''); 
    value = value.replace(/(\..*)\./g,'$1'); 
    $(this).val(value); 
    }) 
}) 

此附加行會檢查是否有一個第一點,隨後數字,然後接着另一個點。

如果是這種情況,替換將保留現有的小數部分並刪除第二個點。

更新jsbin:http://jsbin.com/vetedeca/3/edit?html,output

+0

謝謝你的工作完美! – Wardy277