Google表单正则验证:实现不区分大小写的季节+年份校验
Google表单正则验证规则修复方案
问题根源
你之前用Contains模式搭配的正则([A-Za-z]Spring|Fall|Summer|Winter)+[2]+[0]+[2-9]+[0-9]存在两个核心问题:
- 开头的
[A-Za-z]会错误匹配带多余字母的季节词(比如aSpring),反而漏掉了纯季节词(比如spring) Contains模式只要输入包含正则的任意匹配片段就会通过,单独输入年份时,正则里的年份部分会被匹配,导致验证失效
正确解决方案
- 切换验证模式:把Google表单的验证模式从
Contains改为Matches,这个模式要求整个输入内容完全符合正则规则,而非仅包含匹配片段 - 使用修正后的正则:
(?i)^(?=.*(Spring|Summer|Fall|Winter))(?=.*20[2-9]\d).+$
正则说明
(?i):开启不区分大小写匹配,无需单独写季节词的大小写变体(?=.*(Spring|Summer|Fall|Winter)):确保输入中包含任意一个指定季节词(?=.*20[2-9]\d):确保输入中包含2020-2099范围内的年份(若需支持更早年份,可改为(19\d\d|20\d\d))^和$:限定匹配范围为整个输入字符串,避免部分匹配导致的误判
额外调整
如果允许季节词和年份以任意顺序出现(比如2023 Spring或Fall 2024),上述正则都能正常匹配,无需额外修改。
内容的提问来源于stack exchange,提问作者T. Phillips
相关产品推荐
相关产品推荐

