2012-05-30 29 views

回答

2

有可能更好的正則表達式,但讓我們做一些基本的東西。

獲取輸入,並貼在模糊的事件(不會解釋如何做到這一點,搜索「附加事件DOM的JavaScript元素」或類似的東西)

在,即使你可以做這樣的事情:

if(/(?:[0-1]?[0-9]|[2][1-4]):[0-5]?[0-9]:[0-5]?[0-9]\s?(?:am|pm)?/.test(this.value)) { 
    // Validates 
} else { 
    // Something is wrong 
} 

爲了更好的正則表達式來測試時間格式,或者其他格式,搜索「驗證時間正則表達式的javascript」或類似的東西(有噸在那裏)。

這種特殊的正則表達式驗證時間,你可以在這裏玩以防萬一,如果你想:記住,Ruby和JavaScript的正則表達式做略有不同

http://rubular.com/r/cYs1n3UuKO

熊,但對於這麼簡單的東西你可以使用具有良好界面的紅寶石,以便於測試。

+0

是的,剛剛纔知道什麼正則表達式就像一分鐘前謝謝 – Snedden27

+0

你能告訴我如何使am/pm不區分大小寫 –

+0

這很簡單,我展示瞭如何使用正則表達式作爲一個字面值對象,但如果你構造它使用[RegExp](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp)對象可以添加不區分大小寫等標誌。 'var regex = RegExp('(?:[0-1]?[0-9] | [2] [1-4]):[0-5]?[0-9]:[0-5]? [0-9] \ s?(?: am | pm)?','i')'然後只是'regex.test(this.value)' – sg3s

-1

最簡單的方法可能是使用globalize.js,它可以讓你簡單地測試

Globalize.parseDate(data, 'T') 

不被空,例如if(Globalize.parseDate(data, 'T')) ...。這個特殊的變體需要你所示例的確切格式,並且總是包含秒和am/pm指示符,儘管am或pm指示符不區分大小寫。您可以使用其他格式而不是T來指定不同的解析。

這種方法的另一個優點是這段代碼將全球化。只需設置一個標識語言環境的變量,就可以根據不同語言的規則解析代碼(在本例中爲「長時間」符號)。看看一些說明可能性的code samples

+0

感謝您的回覆,但我已經使用常規表達式,反正我肯定會研究上面的類,ty – Snedden27

相關問題