2012-08-07 49 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

相關問題