2012-03-19 119 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

相关问题