2012-04-18 85 views
0

我正在尝试以下要求的正则表达式。正则表达式接受不同模式的4个字符

  1. 总字符串长度必须为3或4
  2. 前两个字符必须为AZ或az
  3. 最后两个字符必须是0-9

我曾尝试以下,但我知道这不是好的方式

 var str = /^[a-zA-Z]{1,2} + [0-9]{2} + $/, 

请帮我对此。

+0

从你的问题;前两个字符和后两个字符= 4个字符;因此总的字符串长度将始终为4. – Joberror 2012-04-18 09:40:08

+0

@joberror从他的正则表达式中,前两个字符是可选的(可以是一个或两个) – 2012-04-18 09:41:36

+0

您是否想要匹配'+'以及它们为什么在那里? – 2012-04-18 09:42:17

回答

4
var str = /^([a-z]{1,2}|[A-Z]{1,2})[0-9]{2}$/; 

然后你测试为:

str.test("aa3"); // false, 2 integers are required 
str.test("a34"); // true 
str.test("aA33"); // false, 2 first characters have to be in the same case 

不知道你真的First two characters must be from a-z or A-Z的意思是,如果你想这些字符是相同的情况下,使用上述正则表达式,否则

var str = /^[a-zA-Z]{1,2}[0-9]{2}$/; 
+0

它在要求两个角色必须在同一个案例中说的地方? – 2012-04-18 10:16:38

+0

@TimPietzcker有人真的指出(他删除了他的评论),但我从“前两个字符必须来自a-z或A-Z',你认为我认为它错了吗? – 2012-04-18 10:17:56

+0

我不知道,整个规范很朦胧。 – 2012-04-18 10:19:25