谁能告诉我如何在javascript中以hh:mm:ss AM / PM格式验证时间(这是一个html输入元素)
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,它具有良好的界面以便于测试。
最简单的方法可能是使用globalize.js,它可以让您简单地测试
Globalize.parseDate(data, 'T')
因为不为空,例如if(Globalize.parseDate(data, 'T')) ...
. 此特定变体需要您举例说明的确切格式,始终包括秒和 am/pm 指示符,尽管 am 或 pm 指示符不区分大小写。您可以使用其他格式而不是T
指定不同的解析。
这种方法的另一个优点是您的这段代码将是全球化的。只需设置一个标识语言环境的变量,您就可以使代码按照不同语言的规则进行解析(在这种情况下,用于“长时间”表示法)。查看一些说明可能性的代码示例。