You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式测试问题:输入超2字符时.test()未返回预期false

修正正则表达式以限制输入长度为1-2个字符

你的问题出在原正则的结构上:/^[A-Z]{1,2}[A-Z0-9]$/ 会匹配2到3个字符的字符串——它的规则是「开头1-2个大写字母,再紧跟1个大写字母/数字」,所以输入ABC(3个字符)时,前两个A和B匹配[A-Z]{1,2},第三个C匹配[A-Z0-9],自然会返回true。

要实现「输入长度最多2个字符,超出则返回false」的需求,分两种常见场景给出修正后的正则:

场景1:允许每个字符是大写字母或数字,总长度1-2个

var require = /^[A-Z0-9]{1,2}$/;
  • 匹配:A、AB、A1、9Z
  • 不匹配:ABC、aB、123

场景2:第一个字符必须是大写字母,第二个字符可以是大写字母或数字(总长度1-2个)

var require = /^[A-Z]([A-Z0-9])?$/;
  • 匹配:A、AB、A1
  • 不匹配:ABC、1A、aB

验证你的示例:

  • 输入ABC:两个正则的.test()都会返回false
  • 输入AB:两个正则的.test()都会返回true

内容的提问来源于stack exchange,提问作者SpecialDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:00:00