我需要检查输入的信息是否是3个字符长,首先应该是0-9
秒A-Z
和第三个0-9
。在Javascript中使用正则表达式
我写的模式如下:
var pattern = `'^[A-Z]+[0-9]+[A-Z]$'`;
var valid = str.match(pattern);
我糊涂了用正则表达式来选择,匹配和替换的用法。
- 在这种情况下,
[A-Z]
是否只检查一个字符或整个字符串? +
是否分开(拆分?)出字符?
我需要检查输入的信息是否是3个字符长,首先应该是0-9
秒A-Z
和第三个0-9
。在Javascript中使用正则表达式
我写的模式如下:
var pattern = `'^[A-Z]+[0-9]+[A-Z]$'`;
var valid = str.match(pattern);
我糊涂了用正则表达式来选择,匹配和替换的用法。
[A-Z]
是否只检查一个字符或整个字符串?+
是否分开(拆分?)出字符?1)+
匹配一个或多个。你想要的是一个
2)声明你的模式作为一个正则表达式的文字,里面正斜杠
考虑到这两点,你的模式应该是
/^[A-Z][0-9][A-Z]$/
注意也可以使图案用\d
快捷方式替换[0-9]
稍短(匹配任何数字字符)。
3)或者,如果您要允许两种情况,请在最后一个斜杠后添加不区分大小写的i
标志。
4)如果你想仅仅测试一个字符串模式匹配,而不是从中获取匹配,使用test()
,不match()
- 这是更有效的。
var valid = pattern.test(str); //true or false
这是你所需要的正则表达式:
^[0-9][A-Z][0-9]$
在这种情况下,确实[A-Z]只检查一个字符或整个字符串?
它只是检查1个字符,但一个字符可以在字符串中多次..
你应该添加^,为了像我一样整个字符串匹配$。
是否将字符分开(分割?)? 没有。
+
标志只是表明一个字符可以重复1次以上。
“+”表示一个或多个。在你的情况,你应该用准确数量匹配:
/^\w{1}\d{1}\w{1}$/
+
意味着一个或多个字符所以可能的字符串是ABCD1234EF或A3B,无效是3B或A 6B
'+'符号不会突出显示为代码创建列表! – ManseUK 2012-08-07 11:10:04