RegEx来验证工作日志字段模式(以获取用户在任务上工作的时间)

RegEx to validate worklog field pattern (to get how much time user worked on the task)

本文关键字:工作 任务 用户 时间 获取 工作日 验证 日志 字段 RegEx 模式      更新时间:2023-09-26

我必须构建一个带有输入文本字段的HTML表单来保存用户的工作日志小时数。用户可以在其中输入值,例如:

1w 2d 4h 6m 5s

Where, 
w -> week
d -> day
h -> hour
m -> minute
5 -> second

用户也可以输入任何人,也可以输入多个(每个用空格分隔)的组合。

在服务器端,如果输入正确,我可以解析数据,找到任何输入的工作日志持续时间。但如果它是错误的,我想提供客户端验证。。。

您可以使用此正则表达式验证您的空格分隔输入:

/^(?:'d+[wdhms](?: +|$))+$/gmi

RegEx演示

它匹配一个或多个以数字开头、后跟任意字母[wdhms]的文本集。

您可以从这样一个简单的正则表达式开始:

'd+w 'd+d 'd+h 'd+m 'd+s   

其中''d+表示:1或N位

如果输入与此正则表达式不匹配,则取消剪切是错误的输入。

但9999w 9999d 999999 h 456489798m 154689789s将是一个很好的输入。

你需要更加明确你的需求,并展示你已经尝试过的东西。

此正则表达式将允许任何值为可选值,并接受它们之间的空格:

^('d+w)?('s?'d+d)?('s?'d+h)?('s?'d+m)?('s?'d+s)?$

如果您需要强制值之间存在空格,则除了前一个正则表达式之外,还需要检查此正则表达式:

^'d+[wdhms]('s'd+[wdhms])*$