我有一个正则表达式,它接受特定格式的时间,例如“10:00”。
我想将正则表达式更改为接受这种格式或只接受一个破折号(“-”)。
这是表达式:
/^((\d)|(0\d)|(1\d)|(2[0-3]))\:((\d)|([0-5]\d))$/
我有一个正则表达式,它接受特定格式的时间,例如“10:00”。
我想将正则表达式更改为接受这种格式或只接受一个破折号(“-”)。
这是表达式:
/^((\d)|(0\d)|(1\d)|(2[0-3]))\:((\d)|([0-5]\d))$/
解决这个问题的关键点:
[
和]
) 用于包围字符类。|
意思or
。[\:|-]
表示 chech 用于文字:
或连字符-
。结果模式是:
^((\d)|(0\d)|(1\d)|(2[0-3]))[\:|-]((\d)|([0-5]\d))$
Does this regex need to have so many brackets?
/^(([01]?\d|2[0-3]):[0-5]\d|-)$/
只需使用替代方法:
^<your regex>$|^-$
这将匹配您格式中的时间或单个连字符减号。