2012-08-07 112 views
0

我需要检查输入的信息是否是3个字符长,首先应该是0-9A-Z和第三个0-9在Javascript中使用正则表达式

我写的模式如下:

var pattern = `'^[A-Z]+[0-9]+[A-Z]$'`; 
var valid = str.match(pattern); 

我糊涂了用正则表达式来选择,匹配和替换的用法。

  • 在这种情况下,[A-Z]是否只检查一个字符或整个字符串?
  • +是否分开(拆分?)出字符?

回答

1

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

这是你所需要的正则表达式:

^[0-9][A-Z][0-9]$ 

在这种情况下,确实[A-Z]只检查一个字符或整个字符串?

它只是检查1个字符,但一个字符可以在字符串中多次..

你应该添加^,为了像我一样整个字符串匹配$。

是否将字符分开(分割?)? 没有。

+标志只是表明一个字符可以重复1次以上。

0

“+”表示一个或多个。在你的情况,你应该用准确数量匹配:

/^\w{1}\d{1}\w{1}$/ 
1

+意味着一个或多个字符所以可能的字符串是ABCD1234EF或A3B,无效是3B或A 6B

+1

'+'符号不会突出显示为代码创建列表! – ManseUK 2012-08-07 11:10:04