2012-04-18 78 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