在Javascript中使用正则表达式

时间:2012-08-07 11:04:57

标签: javascript regex

我需要检查输入的信息是否为3个字符长,第一个应该是0-9A-Z和第三个0-9

我写的模式如下:

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

我对使用正则表达式进行选择,匹配和替换感到困惑。

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

4 个答案:

答案 0 :(得分:1)

+表示一个或多个字符,因此可能的字符串为ABCD1234EF或A3B,无效为3B或A 6B

答案 1 :(得分:1)

1)+匹配一个或多个。你想要一个

2)将你的模式声明为REGEX文字,在正斜杠内

考虑到这两点,你的模式应该是

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

另请注意,您可以将[0-9]替换为\d快捷方式(匹配任何数字字符),从而使模式稍微缩短。

3)(可选)如果要允许任何一种情况,请在最终尾部斜杠后添加不区分大小写的i标志。

4)如果你只想测试一个字符串匹配一个模式,而不是从中检索匹配,那么使用test(),而不是match() - 它更有效率。

var valid = pattern.test(str); //true or false

答案 2 :(得分:0)

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

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

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

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

你应该添加^和$以便像我一样匹配整个字符串。

  

+分开(拆分?)字符吗?   号

+符号只表示字符可以重复1次以上。

答案 3 :(得分:0)

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

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