正则表达式在 Google 表单上不起作用

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

我正在尝试使用 TextValidationBuilder 来验证 Google 表单上的输入。我正在做一些测试,但我不知道为什么正则表达式不起作用。当我测试正则表达式here时它工作正常。

我想使用正则表达式来验证输入是时间还是数字,我通过检查格式是否类似于“12:30PM”或“8:00AM”或“7”来完成此操作。

这是正则表达式:

([01]{0,1}\d:[0-6]\d((PM)|(AM)))|(\d+)

我正在将表达式手动放入表单中进行测试。 (我知道以编程方式我需要写

\\d
之类的。

正则表达式似乎不起作用并允许以下操作:

  • “12:30”,不带“AM”或“PM”
  • “1234:5678”

但是,当我尝试验证时间时,它工作正常。使用

[01]{0,1}\d:[0-6]\d((PM)|(AM)).
仅当我添加仅用于数字的
or
大小写时才会失败:
\d+

如果有人可以帮助我,我将非常感激!谢谢!!

编辑:我只是在做一些故障排除,以下是我注意到的一些有点奇怪的事情:

当我匹配时间或随机数时,例如:

([01]{0,1}\d:[0-6]\d((PM)|(AM)))|1
,

它有效,但不接受“12:30”之类的响应。但是当我匹配时间或多个数字时,例如:

([01]{0,1}\d:[0-6]\d((PM)|(AM)))|[01]
,

它不起作用并接受“12:30”。

regex google-apps-script google-forms google-forms-api
1个回答
0
投票

感谢评论中的@Nick,使用锚解决了我的问题。正则表达式以 ^ 开始,以 $ 结束。

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