2011-03-19 80 views
1

嗨,我有PHP的一个字段,将在JavaScript中使用,即对电子邮件进行验证验证变量在JavaScript

var emailRegex = /^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$/; 

我后是验证检查,将查找 第一个字母作为大写Q 那么接下来的字母只能是数字 然后跟着一个。 然后两个数字仅 然后可选信 即Q100.11或Q100.11a

我必须承认,我看上面的电子邮件验证检查,我不知道它是如何工作的,但它确实;)

非常感谢这个

史蒂夫

+0

你在寻找正则表达式来使用,还是javascript,或两者兼而有之? – foson 2011-03-19 20:50:39

+0

即时匹配的正则表达式 – 2011-03-19 20:51:38

回答

-1

var regex = /^Q[0-9]+\.[0-9]{2}[a-z]?$/;

任何帮助

+指一个或多个

期间必须转义 - \.

[0-9]{2}意味着2位,同\d{2}

[a-z]?指0或1个字母

您可以检查您的正则表达式http://regexpal.com/

+0

你的网点会匹配任何符号,而不仅仅是一个点。它应该是\。代替。另外,[a-z]不包含大写字母。 – 2011-03-19 21:00:09

+0

你好,我看你需要'编码'来显示\。感谢downvote。 – foson 2011-03-19 21:01:57

+0

嗨,谢谢,注册码实际上只允许我在最后的一封信;)谢谢foson – 2011-03-19 21:21:25

1
var emailRegex = /^Q\d+\.\d{2}[a-zA-Z][email protected]([\w-]+\.)+[a-zA-Z]+$/; 
var str = "[email protected]"; 
alert(emailRegex.test(str)); 
+0

我猜你可能还包括如何在JS中使用它的示例。 – 2011-03-19 20:52:45

+0

关闭但不完全。这不是*但?在@之前。最后一封信也没有给出,所以最好两个都写。最后,4个字母不够TLD(博物馆想到),但它们只是字母。 '/^Q \ d + \。\ d {2} [a-zA-Z]?@([\ w-] + \。)+ [a-zA-Z] + $ /' – erlando 2011-03-19 21:01:00

+0

感谢您的支持帮助也 – 2011-03-19 21:05:34

1

^标志着开始o f字符串,$匹配字符串的结尾。换句话说,整个字符串应该完全匹配这个正则表达式。

  • [\w-\.]+:我想你想匹配的字母,数字,只点和-。在这种情况下,-应该被转义(\-):[\w\-\.]+。加号使得匹配一次或多次。
  • @:一个文字@
  • 匹配
  • ([\w-]+\.)+字母,数字和-被允许一次或多次,具有后一个点(括号之间)。这可能会发生多次(至少一次)。
  • [\w-]{2,4}:这应该与TLD匹配,如comnetorg。由于TLD只能包含字母,因此应该由[a-z]{2,4}取代。这意味着:小写字母可能会出现两到四次。请注意,TLD可能超过4个字符。

的正则表达式,其应遵循的下一规则:

  • 资本QQ
  • 随后的数字出现一次或多次(\d+
  • 字面点(.
  • 两位数字(\d{2}
  • o NE可选字母([a-z]?

结果:

var regex = /Q\d+\.\d{2}[a-z]?/; 

如果你需要匹配字符串大小写不敏感,加i(区分 nsensitive)修改器:

var regex = /Q\d+\.\d{2}[a-z]?/i; 

使用正则表达式验证字符串可以用几种方法完成,其中之一:

if (regex.test(str)) { 
    // success 
} else { 
    // no match 
} 
+1

http://jsfiddle.net/userdude/7reGN/ – 2011-03-19 21:04:28

+0

非常感谢这是小子。谢谢 – 2011-03-19 21:04:53