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

问题描述 投票:-1回答:1

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

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

Part 2可以是'+'或'-',后跟numberunit。Number可以是任何数字,Unit应该是'm','h','d'之一。第二部分是可选的

一些有效的示例:

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

尝试了几种模式,但由于我对正则表达式的了解很少,因此无法通过。

javascript regex reactjs react-redux string-parsing
1个回答
0
投票

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

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

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

Demo on regex101

© www.soinside.com 2019 - 2024. All rights reserved.