2014-11-04 104 views
1

我需要的只是一个电子邮件地址的匹配前面只有一个分号的实例的前一个分号。 如下:正则表达式来验证电子邮件

;[email protected] 

正则表达式不应该符合以下:

;[email protected];[email protected] 

如何在正则表达式此模式相匹配? 任何帮助,将不胜感激。 感谢

+0

什么你可能在这里看到其他数据?因为如果它只是“一封电子邮件,或者一封电子邮件”,你可以盲目地替换';'与'',甚至不打扰正则表达式。 – 2014-11-04 19:39:28

回答

3

使用正则表达式像

^;\[email protected]\w+\.com$ 

见正则表达式是如何工作的,在http://regex101.com/r/mW5qZ9/3

+1

只是要清楚,这还不足以验证电子邮件地址。这似乎不是一个容易的问题。 http://www.regular-expressions.info/email.html – jzila 2014-11-04 19:39:17

+1

@jzila正则表达式匹配一个非常基本的电子邮件。 Op没有提供*必须*和*不能*匹配的任何条件 – nu11p01n73R 2014-11-04 19:40:25

+0

不验证电子邮件,只需在电子邮件地址前加上分号来验证该模式,电子邮件地址将始终有效(据推测) – Athapali 2014-11-04 19:41:16

1

看来你正在寻找积极前瞻:匹配;其次是非分号。

RegExp(/^;(?=[^;]+$)/).test(';') // false 
RegExp(/^;(?=[^;]+$)/).test(';x') // true 
RegExp(/^;(?=[^;]+$)/).test(';x;') // false 

RegExp(/^;(?=[^;]+$)/).test(';[email protected];[email protected]') 
// -> false 

RegExp(/^;(?=[^;]+$)/).test(';[email protected]') 
// -> true 

如果你想匹配的出发分号后的电子邮件地址(如你评论),那么你并不需要向前看,只是一个普通的比赛:

RegExp(/^;[^;]+$/).test(';[email protected];[email protected]') 
// -> false 

RegExp(/^;[^;]+$/).test(';[email protected]') 
// -> true 
+0

谢谢,但这只匹配第一个分号,我想表达式匹配第一个分号和第一个电子邮件它。然而,它不应该匹配任何有一个以上的电子邮件地址与前面的分号,如:[email protected]; [email protected] – Athapali 2014-11-04 19:55:24

+0

@SariksaThapa在这种情况下,我增加了另一个例子 – janos 2014-11-04 20:01:12

相关问题