2012-03-19 118 views
0

我想建立一個正則表達式,允許以下情況:的javascript:使用正則表達式來允許字母,數字和空格(至少一個字母和數字)

  • M1 1AA
  • B33 8號
  • CR2 6XH
  • DN55 1PT
  • W1A 1HQ
  • EC1A 1BB

and 不應該允許,只有一個字母或單個數字。 E.g:

  • 一個
  • AA AAA

而且我如何在JavaScript調用它。我目前使用正則表達式

^[A-Z0-9 ]*[A-Z0-9][A-Z0-9 ]*$

這驗證所有上述情況INCLUDIN一個字母或一個數字。

請幫助我如何使用JavaScript要在文本框變化稱爲ñ驗證使用上述正則表達式

回答

2

你靠近。解決這個問題的一種方法是

^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$ 

,其允許任意的字母,數字或空間([A-Z0-9 ]*)之前,之後,和字母和數字,並且允許使用信之間來首先數或先來。

但是,還有另一種解決方法。你可以使用兩個正則表達式。首先,根據正則表達式檢查

^[A-Z0-9 ]*$ 

它檢查您是否只有字母,數字和空格。然後,檢查針對正則表達式

[A-Z][A-Z0-9 ]*\d|\d[A-Z0-9 ]*[A-Z] 

其中檢查至少一個字母([A-Z])和一個數字(\d)中,用兩種順序允許的。請注意,此模式不包括帽子和美元符號,所以字母和數字可以出現在字符串中的任何位置。

雙正則表達式方法的優點是稍後更易於閱讀和修改。

+0

這隻允許字母以及E.g AA AAA和22 232.我想要至少一個字母和一個數字。 E.g A2,AA2,22A – Ishan 2012-03-19 05:21:42

+0

@Ishan我在我的答案中編輯了正則表達式,以檢查至少一個字母和至少一個數字。 – 2012-03-19 05:25:36

+0

如果輸入的開頭和結尾處帶有一個數字(例如,A1A或1A1),而這些數字似乎基於該規範有效,則兩種模式的方法會被破壞。 – 2012-03-19 06:20:29

相關問題