繁体   English   中英

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

[英]Validate time in format as“ hh:mm:ss am/pm ” in javascript

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

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

获取输入并在模糊情况下附加事件(不会解释如何执行此操作;搜索“将事件附加到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')

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM