如何使用正则表达式为 JS 验证像 '$Now + 2h' 这样的字符串?



我有一个要验证的用户输入:

字符串由第1部分+第2部分组成。第1部分可以是"$Now"、"$Today"或"$CurrentMonth"。第1部分是强制性的

第2部分可以是"+"或"-",后面跟着数字单位。数字可以是任何数字,单位应该是"m"、"h"、"d"中的一个。第2部分是可选的

一些有效的例子:

'$Now', 
'$Today',
'$CurrentMonth',
'$Now + 2h',
'$Now - 4m',
'$Now + 6d',
'$Today - 7d'

尝试了几种模式,但无法通过,因为我对正则表达式知之甚少。

您可以使用以下正则表达式:

^$(Now|Today|CurrentMonth)s*(?:([+-])s*(d+)([dhm]))?s*$

它查找$Now$Today$CurrentMonth中的一个,然后是可选的+/-、数字和单位(dmh(。它捕获组1中的Part 1,然后捕获组2中的+/-,组3中的数字和组4中的单位,以简化后期处理。

regex101 演示

相关内容

  • 没有找到相关文章

最新更新