gpt4 book ai didi

JavaScript RegExp 匹配(部分)小时

转载 作者:行者123 更新时间:2023-11-28 12:07:27 24 4
gpt4 key购买 nike

我希望允许人们以各种格式在文本框中输入时间。其中一种格式可以是:

2h 2 小时,或
2.5h 2个半小时

我想使用正则表达式来识别该模式,但由于某种原因它没有识别它:

我有:

var hourRegex = /^\d{1,2}[\.\d+]?[h|H]$/;

适用于 2h,但不适用于 2.5h

我认为这个正则表达式意味着 - 从字符串的开头开始,有一个或两个数字,然后没有或一个小数点,如果存在,则必须后跟一个或多个数字,然后有一个 h H 然后它一定是字符串的结尾。

我尝试过正则表达式工具here但运气不佳。

最佳答案

/^\d{1,2}(?:\.\d+)?h$/i; 使用圆括号代替方括号。

  • 从头开始
  • 一位或两位数字
  • 可选:一个点,后跟至少一位数字
  • h结尾
  • 不区分大小写

正则表达式教程

  • [...] - 方括号表示:提供范围内的任何内容。
  • [^...] 表示:匹配不在给定范围内的字符
  • (...) - 括号的意思是:将我分组。或者,组的第一个字符可以以以下形式开头:
    1. ?: - 不要引用我(我,I = 组)
    2. ?= - 不要让我参加比赛,尽管我必须在这里
    3. ?! - 我此时可能不会出现

  • {a,b}{a,} 表示:至少 a,最多 >b 个字符。省略 b = 无穷大
  • +表示:至少一次,尽可能匹配等价于{1,}
  • * 表示:尽可能匹配等价于{0,}
  • +?*? 与前面描述的效果相同,但有一点不同:尽可能少匹配

示例

[a-z]     One character, any character between a, b, c, ..., z
(a-z) Match "a-z", and group it
[^0-9] Match any non-number character

另请参阅

关于JavaScript RegExp 匹配(部分)小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705440/

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