我正在尝试使用 TextValidationBuilder 来验证 Google 表单上的输入。我正在做一些测试,但我不知道为什么正则表达式不起作用。当我测试正则表达式here时它工作正常。
我想使用正则表达式来验证输入是时间还是数字,我通过检查格式是否类似于“12:30PM”或“8:00AM”或“7”来完成此操作。
这是正则表达式:
([01]{0,1}\d:[0-6]\d((PM)|(AM)))|(\d+)
我正在将表达式手动放入表单中进行测试。 (我知道以编程方式我需要写
\\d
之类的。
正则表达式似乎不起作用并允许以下操作:
但是,当我尝试验证时间时,它工作正常。使用
[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”。
感谢评论中的@Nick,使用锚解决了我的问题。正则表达式以 ^ 开始,以 $ 结束。