我需要检查输入的信息是否是 3 个字符长,第一个应该是0-9
第二个A-Z
,然后是第三个0-9
。
我写的模式如下:
var pattern = `'^[A-Z]+[0-9]+[A-Z]$'`;
var valid = str.match(pattern);
我对使用正则表达式进行选择、匹配和替换感到困惑。
- 在这种情况下,是
[A-Z]
只检查一个字符还是整个字符串? - 是否
+
分开(拆分?)出字符?
我需要检查输入的信息是否是 3 个字符长,第一个应该是0-9
第二个A-Z
,然后是第三个0-9
。
我写的模式如下:
var pattern = `'^[A-Z]+[0-9]+[A-Z]$'`;
var valid = str.match(pattern);
我对使用正则表达式进行选择、匹配和替换感到困惑。
[A-Z]
只检查一个字符还是整个字符串?+
分开(拆分?)出字符?+
表示一个或多个字符,因此可能的字符串为 ABCD1234EF 或 A3B,无效为 3B 或 A 6B
1)+
匹配一个或多个。你想要一个
2)将您的模式声明为正则表达式文字,在正斜杠内
考虑到这两点,你的模式应该是
/^[A-Z][0-9][A-Z]$/
[0-9]
另请注意,您可以通过替换为\d
快捷方式(匹配任何数字字符)来使模式略短。
i
3) (可选)如果您想允许任何一种情况,请在最后的斜杠后添加不区分大小写的标志。
4)如果您只想测试字符串与模式匹配,而不是从中检索匹配,请使用test()
,而不是match()
- 它更有效。
var valid = pattern.test(str); //true or false
这是您需要的正则表达式:
^[0-9][A-Z][0-9]$
在这种情况下,[AZ] 是只检查一个字符还是整个字符串?
它只是检查 1 个字符,但一个字符可以在一个字符串中多次出现..
您应该像我一样添加 ^ 和 $ 以匹配整个字符串。
+ 是否分开(拆分?)出字符?不。
+
符号只是表明一个字符可以重复 1 次以上。
“+”表示一个或多个。在您的情况下,您应该使用精确的数量匹配:
/^\w{1}\d{1}\w{1}$/