在javascript中以格式“hh:mm:ss am / pm”验证时间

时间:2012-05-30 08:08:45

标签: javascript html

任何人都可以告诉我如何验证时间(这是一个html输入元素)的格式为hh:mm:ss AM / PM in javascript

2 个答案:

答案 0 :(得分:2)

可能有更好的正则表达式,但让我们做一些基本的事情。

获取输入并附加模糊事件(不解释如何执行此操作;搜索'将事件附加到javascript中的dom元素'或类似的东西)

即使你可以做这样的事情:

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”或类似的东西(有很多)。

这个特殊的正则表达式可以验证时间,如果你愿意,你可以在这里玩它:

http://rubular.com/r/cYs1n3UuKO

请记住,ruby和javascript正则表达式略有不同,但对于像这样简单的东西,你可以使用rubular,它具有良好的界面,便于测试。

答案 1 :(得分:-1)

最简单的方法可能是使用globalize.js,它可以让你只测试

Globalize.parseDate(data, 'T')

表示不为空,例如if(Globalize.parseDate(data, 'T')) ...。这个特殊的变体需要你所例证的确切格式,包括秒和am / pm指示符,尽管对am或pm指示符不区分大小写。您可以使用其他格式而不是T来指定不同的解析。

这种方法的另一个好处是,这段代码将为全球化做好准备。只需设置一个标识语言环境的变量,就可以通过不同语言的规则对代码进行解析(在本例中为“长时间”符号)。查看一些说明可能性的code samples