2016-12-13 55 views
-2

我是javascript的新學員。 所以我有這個HTML文本框。如何使用正則表達式限制HTML文本框的輸入?

<form method="get" id="form" action="number.php"> 
    <p><input type="text" id="number" name="number" value="0,0" size="4"/></p> 
</form> 

使用JavaScript(未jquery的),一個正則表達式的表達和不改變的HTML代碼,我只希望允許正數或一個正的輸入。數字後跟一個逗號,然後逗號後只有一個數字。

E.g. 5或23或141或0

例如, 15,9或0,0或356,4或77,7

這是我的javascript函數的樣子,但我不知道如何調用該函數輸入此文本字段「數字」。不知道我的正則表達式是否正確。

number.onkeypress = function validate(s) { 
    var rgx = /^\d+(,\d{1,1})?$/ ; 
    if(rgx.test(s)) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

所以我的2個問題是:

  1. 如何我正則表達式功能檢查輸入的文本框,所以只有數字和一個逗號被允許?

  2. 我的正則表達式正確嗎?

+0

你有沒有對測試輸入上http://www.regexpal.com/或類似的測試?你的'測試'方法很好。 – jmargolisvt

+0

Thx。我沒有,但現在一旦你提到,我做到了。表達式看起來是正確的,但問題是,我的html測試網站不接受任何類型的輸入。我根本無法輸入文本框,所以一定是錯誤的。我認爲這個問題或者是正則表達式,或者我稱之爲函數。 – sepulchre

回答

0

你試試這個

<p><input type="text" id="number" name="number" value="0,0" onblur="javascript:validate()" size="4"/></p> 

<script> 

function validate() { 
    var numberVar = document.getElementById("number"); 
    var rgx = /^\d+(,\d{1,1})?$/; 
    if(!rgx.test(numberVar.value)) { 
     numberVar.value = ""; 
     numberVar.focus(); 
    } 
} 
</script> 
+0

你有沒有看到我的答案? –

+0

是的,我看到你的正則表達式網站的第一個答案。謝謝。對於這個答案:我不允許更改html代碼,您更改了html代碼。這是一個家庭作業,我不能操縱HTML代碼。 – sepulchre

相關問題