2012-06-16 46 views
1

我想有一個正則表達式,當輸入不正確時清除HTML字段。我創建了這一個,但是當它不正確時清除該字段,只有當輸入正確時才清除它。JavaScript正則表達式來檢查時間格式

onchange="this.value=this.value.replace(/^([01]?[0-9]|2[0-3]):[0-5][0-9]/,'')" 

我一直在努力,「反向」的代碼,但它並沒有到目前爲止成功。

回答

5
onchange="if (!this.value.match(/^([01]?[0-9]|2[0-3]):[0-5][0-9]/)) this.value = '';" 
1
onchange="this.value= 
/^([01]?[0-9]|2[0-3]):[0-5][0-9]/.test(this.value) ? this.value : ''" 
+0

的'測試()的語法'是不正確(對象和參數需要被交換),並有一個不必要的'「」'參數從質詢代碼剩。 –

+0

它實際上按原樣工作。試試看:http://jsfiddle.net/Nr3Pb/ –

+0

它運行在小提琴中,但是在獨立的網頁中,小提琴崩潰時使用相同的代碼。我在FF,Chrome和IE9中測試過它。字符串對象沒有test()方法,正則表達式對象可以。在Firebug中,我得到錯誤:'value.test不是函數'。 –

2
if(!/^([01]?[0-9]|2[0-3]):[0-5][0-9]/.test(this.value)) this.value="";