电子邮件正则表达式,正则表达式邮箱格式

hacker2022-12-15黑客服务170

JS 邮箱正则表达式

/^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g

开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-。然后是点“.”和单词字符和-的组合,可以有一个或者多个组合。

代码如下:

script type="text/javascript" 

function isEmail(str){ 

var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; 

return reg.test(str); 

var str = 'test@hotmail.com'; 

document.write(isEmail(str)+'br /'); 

var str2 = 'test@sima.vip.com'; 

document.write(isEmail(str2)+'br /'); 

var str3 = 'te-st@qq.com.cn'; 

document.write(isEmail(str3)+'br /'); 

var str4 = 'te_st@sima.vip.com'; 

document.write(isEmail(str4)+'br /'); 

var str5 = 'te.._st@sima.vip.com'; 

document.write(isEmail(str5)+'br /'); 

/script

扩展资料:

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

参考资料:正则表达式百度百科

求一个邮箱的格式是否正确的正则表达式

import java.io.*;public class CheckEmail 

public static boolean checkEmail(String email)

{// 验证邮箱的正则表达式 

String format = "\\p{Alpha}\\w{2,15}[@][a-z0-9]{3,}[.]\\p{Lower}{2,}";

//p{Alpha}:内容是必选的,和字母字符[\p{Lower}\p{Upper}]等价。如:200896@163.com不是合法的。

//w{2,15}: 2~15个[a-zA-Z_0-9]字符;w{}内容是必选的。 如:dyh@152.com是合法的。

//[a-z0-9]{3,}:至少三个[a-z0-9]字符,[]内的是必选的;如:dyh200896@16.com是不合法的。

//[.]:'.'号时必选的; 如:dyh200896@163com是不合法的。//p{Lower}{2,}小写字母,两个以上。如:dyh200896@163.c是不合法的。

if (email.matches(format))

return true;// 邮箱名合法,返回true 

}

else

{

return false;// 邮箱名不合法,返回false

}

public static void main(String[] args) 

throws Exception{

String email = "cc**365@163.com"; 

// 需要进行验证的邮箱

while(true){

email = new BufferedReader(new InputStreamReader(System.in)).readLine();

if (CheckEmail.checkEmail(email))

// 验证邮箱

{ System.out.println(email+"\n是合法的邮箱名。");}

else{System.out.println(email+"\n不是合法的邮箱名。");

}

}

}

}

邮箱地址正则表达式

\w匹配字母或数字或下划线或汉字等

- 原型

\. 匹配字符.

[0-9]{1,3} 匹配数字 值范围0-9 重复次数 不低于1次 不高于3次

[a-zA-Z] 匹配大小写字母

所有用[ ]包的 都只匹配一个字符 里面写的 只是这个字符可能的值而已 就像枚举

JAVA中写邮箱格式的正则表达式,怎么写?

合法E-mail地址:

1.

必须包含一个并且只有一个符号“@”

2.

第一个字符不得是“@”或者“.”

3.

不允许出现“@.”或者.@

4.

结尾不得是字符“@”或者“.”

5.

允许“@”前的字符中出现“+”

6.

不允许“+”在最前面,或者“+@”

正则表达式如下:

-----------------------------------------------------------------------

^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$

-----------------------------------------------------------------------

字符描述:

^

:匹配输入的开始位置。

\:将下一个字符标记为特殊字符或字面值。

*

:匹配前一个字符零次或几次。

+

:匹配前一个字符一次或多次。

(pattern)

与模式匹配并记住匹配。

x|y:匹配

x

y。

[a-z]

:表示某个范围内的字符。与指定区间内的任何字符匹配。

\w

:与任何单词字符匹配,包括下划线。

$

:匹配输入的结尾。

电子邮件的正则表达式

要求挺多,还没分, 所以,自己改下面的东西去;绝对是你想要的:

######### PERL#################################

# Some things for avoiding backslashitis later on.

$esc = '\\\\'; $Period = '\.';

$space = '\040'; $tab = '\t';

$OpenBR = '\['; $CloseBR = '\]';

$OpenParen = '\('; $CloseParen = '\)';

$NonASCII = '\x80-\xff'; $ctrl = '\000-\037';

$CRlist = '\n\015'; # note: this should really be only \015.

# Items 19, 20, 21

$qtext = qq/[^$esc$NonASCII$CRlist\"]/; # for within "..."

$dtext = qq/[^$esc$NonASCII$CRlist$OpenBR$CloseBR]/; # for within [...]

$quoted_pair = qq $esc [^$NonASCII] ; # an escaped character

########################################################################

# Items 22 and 23, comment.

# Impossible to do properly with a regex, I make do by allowing at most one level of nesting.

$ctext = qq [^$esc$NonASCII$CRlist()] ;

# $Cnested matches one non-nested comment.

# It is unrolled, with normal of $ctext, special of $quoted_pair.

$Cnested = qq

$OpenParen # (

$ctext* # normal*

(?: $quoted_pair $ctext* )* # (special normal*)*

$CloseParen # )

;

# $comment allows one level of nested parentheses

# It is unrolled, with normal of $ctext, special of ($quoted_pair|$Cnested)

$comment = qq

$OpenParen # (

$ctext* # normal*

(?: # (

(?: $quoted_pair | $Cnested ) # special

$ctext* # normal*

)* # )*

$CloseParen # )

;

######################################################################

# $X is optional whitespace/comments.

$X = qq

[$space$tab]* # Nab whitespace.

(?: $comment [$space$tab]* )* # If comment found, allow more spaces.

;

# Item 10: atom

$atom_char = qq/[^($space)\@,;:\".$esc$OpenBR$CloseBR$ctrl$NonASCII]/;

$atom = qq

$atom_char+ # some number of atom characters...

(?!$atom_char) # ..not followed by something that could be part of an atom

;

# Item 11: doublequoted string, unrolled.

$quoted_str = qq

\" # "

$qtext * # normal

(?: $quoted_pair $qtext * )* # ( special normal* )*

\" # "

;

# Item 7: word is an atom or quoted string

$word = qq

(?:

$atom # Atom

| # or

$quoted_str # Quoted string

)

;

# Item 12: domain-ref is just an atom

$domain_ref = $atom;

# Item 13: domain-literal is like a quoted string, but [...] instead of "..."

$domain_lit = qq

$OpenBR # [

(?: $dtext | $quoted_pair )* # stuff

$CloseBR # ]

;

# Item 9: sub-domain is a domain-ref or domain-literal

$sub_domain = qq

(?:

$domain_ref

|

$domain_lit

)

$X # optional trailing comments

;

# Item 6: domain is a list of subdomains separated by dots.

$domain = qq

$sub_domain

(?:

$Period $X $sub_domain

)*

;

# Item 8: a route. A bunch of "@ $domain" separated by commas, followed by a colon.

$route = qq

\@ $X $domain

(?: , $X \@ $X $domain )* # additional domains

:

$X # optional trailing comments

;

# Item 6: local-part is a bunch of $word separated by periods

$local_part = qq

$word $X

(?:

$Period $X $word $X # additional words

)*

;

# Item 2: addr-spec is local@domain

$addr_spec = qq

$local_part \@ $X $domain

;

# Item 4: route-addr is route? addr-spec

$route_addr = qq[

$X #

(?: $route )? # optional route

$addr_spec # address spec

#

];

# Item 3: phrase........

$phrase_ctrl = '\000-\010\012-\037'; # like ctrl, but without tab

# Like atom-char, but without listing space, and uses phrase_ctrl.

# Since the class is negated, this matches the same as atom-char plus space and tab

$phrase_char =

qq/[^()\@,;:\".$esc$OpenBR$CloseBR$NonASCII$phrase_ctrl]/;

# We've worked it so that $word, $comment, and $quoted_str to not consume trailing $X

# because we take care of it manually.

$phrase = qq

$word # leading word

$phrase_char * # "normal" atoms and/or spaces

(?:

(?: $comment | $quoted_str ) # "special" comment or quoted string

$phrase_char * # more "normal"

)*

;

## Item #1: mailbox is an addr_spec or a phrase/route_addr

$mailbox = qq

$X # optional leading comment

(?:

$addr_spec # address

| # or

$phrase $route_addr # name and address

)

;

#########################################################################

# Here's a little snippet to test it.

# Addresses given on the commandline are described.

#

my $error = 0;

my $valid;

foreach $address (@ARGV) {

$valid = $address =~ m/^$mailbox$/xo;

printf "`$address' is syntactically %s.\n", $valid ? "valid" : "invalid";

$error = 1 if not $valid;

}

exit $error;

评论列表

访客
访客
2022-12-15

$NonASCII$CRlist\"]/; # for within "..."$dtext = qq/[^$esc$NonASCII$CRlist$OpenBR$Close

访客
访客
2022-12-15

il){// 验证邮箱的正则表达式 String format = "\\p{Alpha}\\w{2,15}[@][a-z0-9]{3,}[.]\\p{Lower}{2,}";//p{Alpha}:内容是必选的,和字母字符[\p{Lower}\p{Upper}]等价。如:200896@163.

访客
访客
2022-12-15

special of $quoted_pair.$Cnested = qq $OpenParen # ( $ctext*

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。