1

谁能告诉我如何在javascript中以hh:mm:ss AM / PM格式验证时间(这是一个html输入元素)

4

2 回答 2

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,它具有良好的界面以便于测试。

于 2012-05-30T08:21:17.143 回答
-1

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

Globalize.parseDate(data, 'T')

因为不为空,例如if(Globalize.parseDate(data, 'T')) .... 此特定变体需要您举例说明的确切格式,始终包括秒和 am/pm 指示符,尽管 am 或 pm 指示符不区分大小写。您可以使用其他格式而不是T指定不同的解析。

这种方法的另一个优点是您的这段代码将是全球化的。只需设置一个标识语言环境的变量,您就可以使代码按照不同语言的规则进行解析(在这种情况下,用于“长时间”表示法)。查看一些说明可能性的代码示例。

于 2012-05-30T10:00:25.350 回答