9999.9999或9999或9999:9999的正则表达式

regular expression for 9999.9999 or 9999 or 9999:9999

本文关键字:9999 正则表达式      更新时间:2023-09-26

我想要0000.0000-9999.9999或0000-9999或0000:0000-9999:9999的正则表达式。

可能是:/^('d{4}$'.'d{4}$)|('d{4}$)|('d{4}$':'d{4}$)/
请引导

您正在寻找这个

^'d{4}(?:([.:])'d{4})?(?:-'d{4}(?:'1'd{4})?)?$

解释

^#字符串的开头''d{4}#四位数字(?:#非捕获组([.:])#分隔符字符(存储在组1中)''d{4}#四位数字)?#末端组,使为可选(?:#非捕获组-#短划线''d{4}#四位数字(?:''1''d{4})?#无论第1组是什么加四位数字(可选))?#末端组,使为可选$#字符串结尾

这仍然允许CCD_ 2。您可以通过在成功匹配后评估字符串长度来检查这种特殊情况(即,必须是4、9或19)。

或者,您可以在正则表达式前面加上(?=.{4}$|.{9}$|.{19}$)

$标记行的结束,就像^标记行的开始一样,所以/^('d{4}$'.'d{4}$)|('d{4}$)|('d{4}$':'d{4}$)/是错误的。

我会试试:

/^('d{4}'.'d{4})|('d{4})|('d{4}':'d{4})$/

相反。

您也可以使第二部分可选,并允许.:(如果存在):

/^'d{4}(['.:]'d{4})?$/

(我更喜欢Perl正则表达式,但它也应该适用于JavaScript)

这样就可以了。

/[0-9]{4}(('.|-|:)?[0-9]{0|4})?/