input字段pattern正则校验失效问题排查与修复咨询
问题原因
你当前的正则写法存在两处逻辑错误:
- 缺少字符串起始锚点与匹配量词:
[^a-z^A-Z]$仅校验字符串最后一位是否符合规则,完全不校验前面的内容,所以只要末尾字符不是字母,哪怕中间包含字母也会通过校验,这就是35!b1校验通过的核心原因 - 字符集内冗余
^符号:中括号内开头的^代表取反逻辑,你在A-Z前额外加的^会被识别为普通字符,导致规则额外禁止输入^符号,不符合你允许所有特殊符号的预期
修复方案
将正则修改为^[^a-zA-Z]*$即可:
- 开头
^和结尾$锚定整个字符串,要求所有字符都符合规则 [^a-zA-Z]匹配所有非大小写字母的字符- 末尾
*允许空输入,如果你要求输入框至少有一个内容,可替换为+
修改后的配置代码如下:
<item name="pattern" xsi:type="string">^[^a-zA-Z]*$</item>
内容的提问来源于stack exchange,提问作者Lith
相关产品推荐
相关产品推荐

