gpt4 book ai didi

javascript - 允许 MM :SS, TH 或 SS,TH 的正则表达式

转载 作者:行者123 更新时间:2023-12-02 17:50:14 27 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式,允许输入以分钟、秒、十分之一和百分之一为单位的时间。我遇到的问题是,还应该允许用户输入仅秒和十分之一或秒、十分之一和百分之一的时间。变化如下:

分:秒:日分:秒:日毫米:秒:秒

你明白了。

以下允许 ss:th | SS:t | s:th | s:t

^(([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])(\.|\,)([0-9]|[0-9][0-9]))$

但是,一旦我将分钟添加到表达式中,验证总是失败:

^(([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]):([0- 9]|[0-5][0-9])(\.|\,)([0-9]|[0-9][0-9])) | (([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])(\.|\,)([0-9 ]|[0-9][0-9]))$

最终我还需要添加小时数,并允许用户输入超过 59 秒的时间 - 例如67.32秒

最佳答案

以下可能未涵盖以下未说明的格式:)

^(?:\d+:)?(?:[0-5]\d:|[0-9]:)?(?:[0-5]\d|\d)(?:[.,]\d\d?)?$

以下情况成功或失败:

9.45  -  success
9 - success
4:6.65 - success
5:06.65 - success
5:6,65 - success
50:40 - success
50:40.65 - success
50:06.65 - success
50:06.6 - success
06.65 - success
6.65 - success
1:50:06.65 - success
19:50:06.65 - success
19:50:06.65 - success
69,45 - fail
69.45 - fail
19:60:06.65 - fail
19:50:96.65 - fail

我很快就会输入解释。

已修订 - 根据 OP 的评论

^(?:\d+:)?(?:[0-5]\d:|[0-9]:)?(?:[0-5]\d|\d|^\d\d)(?:[.,]\d\d?)?$

之前 69,45|69.45 失败的地方现在可以匹配。我刚刚在秒部分添加:

|^\d\d

当然,169,45 会失败,但只需将之前的添加更改为:

|^\d+

现在它将匹配任何秒数:)

关于javascript - 允许 MM :SS, TH 或 SS,TH 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21429502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com