2014-01-27 128 views
2

我寫了一個JavaScript函數,只允許數字,逗號,句號這樣的JavaScript只允許數字,逗號,句號,退格

function isNumber(evt) { 
       var theEvent = evt || window.event; 
       var key = theEvent.keyCode || theEvent.which; 
       key = String.fromCharCode(key); 
       var regex = /^[0-9.,]+$/; 
       if (!regex.test(key)) { 
        theEvent.returnValue = false; 
        if (theEvent.preventDefault) theEvent.preventDefault(); 
       } 

} 

,但如果我想刪除任意數量的格式的文本框..退格不管用。然後我改變了正則表達式代碼爲「var regex = /^[0-9.,BS]+$/;

仍然我不能夠在textbox.event中使用退格鍵我不能在文本框上使用左右鍵是我做錯了嗎?任何人都可以幫助...謝謝。 (當我用「BS」的正則表達式,而不是退格其允許「B」,在文本框中,「S」字符。)

+0

我無法測試它,但你可以嘗試使用正則表達式'/^[0-9。,\ b] + $ /'來代替? – Jerry

+0

退格工作,謝謝。但仍然無法在文本框中左右移動光標.. –

+0

如果使用'jquery',請嘗試[字母數字](http://www.shiguenori.com/material/alphanumeric/index.html)插件 – Catalin

回答

5

試試這個代碼:

function isNumber(evt) { 
      var theEvent = evt || window.event; 
      var key = theEvent.keyCode || theEvent.which; 
      key = String.fromCharCode(key); 
      if (key.length == 0) return; 
      var regex = /^[0-9.,\b]+$/; 
      if (!regex.test(key)) { 
       theEvent.returnValue = false; 
       if (theEvent.preventDefault) theEvent.preventDefault(); 
      } 
} 
+0

這不允許逗號或點 –

+0

以上正則表達式已經在字符列表中有逗號和點 – anubhava

相關問題