2016-08-19 33 views
-1

我想驗證JavaScript中的整數和浮點值,但未能實現它。它總是允許「。」 。請幫我解決這個正則表達式錯誤。正則表達式驗證錯誤javascript的數值

結果: - 1,1.1,0.1

我在onkeypress事件事件檢查。這不是在那裏工作。

<input type="text" onkeypress="Test()" style="width:100px"/> 

    function Test() { 

     var code; 
     var character; 
     if (document.all) 
     { 
      code = window.event.keyCode; 
     } 
     else { 
      code = arguments.callee.caller.arguments[0].which; 
     } 
     var character = String.fromCharCode(code); 
     var txt = new RegExp('([0-9]*[.])?[0-9]+');//only numueric value 

     if (!txt.test(character)) { 
      if (document.all) { 
       window.event.returnValue = false; 
      } 
      else { 
       arguments.callee.caller.arguments[0].preventDefault(); 
      } 
     } 
    } 
+0

更新版本回答假設你的意思是你想只允許整數,從你的正則表達式 –

+0

刪除'[]'你只想整數測試或還漂浮? – Toto

+0

@Toto我需要測試整數+浮點數 – nichu09

回答

0

你需要做兩件事情:

1)使用 「的onkeyup」 而不是 「onkeypress事件」

2)使用這個正則表達式:

(^(-)?[0-9]*([\.]?[0-9]+)?$) 

我把它放在一個在線測試儀,你可以在這裏測試:

https://regex101.com/r/zL1mB0/3

因爲你的第一個問題編輯

+0

請檢查我更新的問題。你的答案在這種情況下也不起作用。 – nichu09

+0

我更新了它,因此它適用於「結果: - 1,1.1,.1」。再次檢查 –

+0

如果不好,請努力解釋應該如何工作以及不應該如何工作。 –