2016-04-29 49 views
0

我有一個輸入的文本類型。如何進行驗證,以便用戶只能輸入此類值(5小時30分鐘),這是爲了記錄時間(在任務上花費了多少時間)。我應該使用任何正則表達式?javascript/jquery驗證時間日誌(5h 3m)

+0

是@Annie艾倫,你是對的。您還可以檢查鍵碼以確保輸入的字符符合您的要求。當輸入失去焦點時,Regex可用於驗證輸出。 – CuriousMind

+0

如果您仍然遇到問題,我會建議您,在您的問題中添加一些代碼。它會幫助別人,更好地回答。祝你好運。 – CuriousMind

+0

謝謝,正則表達式只能用數字開頭,可以包含3個字母(h,m,s),還有空格? –

回答

0

我不知道如何一次處理所有的情況,但你可以隨時測試幾個rexexp,看看你是否得到一個匹配。

  • 小時和分鐘:只有/^\d{1,2}h\d{1,2}m$/i

  • 營業時間:只/^\d{1,2}h$/i

  • 分鐘:/^\d{1,2}m$/i

  • 分鐘和小時:/^\d{1,2}m\d{1,2}h$/i

var pattern1 = /^\d{1,2}h\d{1,2}m$/i; 
 
var pattern2 = /^\d{1,2}h$/i; 
 
var pattern3 = /^\d{1,2}m$/i; 
 
var pattern4 = /^\d{1,2}m\d{1,2}h$/i; 
 

 
var reg1 = RegExp(pattern1); 
 
var reg2 = RegExp(pattern2); 
 
var reg3 = RegExp(pattern3); 
 
var reg4 = RegExp(pattern4); 
 

 
var test = function() { 
 

 
    var toTest = document.getElementById('i').value; 
 

 
    if (
 
    !reg1.test(toTest) && 
 
    !reg2.test(toTest) && 
 
    !reg3.test(toTest) && 
 
    !reg4.test(toTest) 
 
) alert('Not OK'); 
 
    else alert('OK'); 
 
}
<input id="i" type="text" value="" /> 
 
<input type="button" value="Test" onclick="test();" />

+0

現在嘗試我錯過了字符串終止符號。例如1h30m,1h,30m應該返回OK。 – PinkTurtle

+1

太棒了!非常感謝^^ –

+0

你知道任何好的教程,以學習正則表達式嗎? –