判断一个字符串是否是一个合法的电子邮件地址
2011-04-27 22:41
323 查看
判断一个字符串是否是一个合法的电子邮件地址
邮件地址最基本的格式可以看作是
<用户名@域名>。对于用户名,各个ISP没有统一的标准,除了数字和字母外,有的允许有<_>,有的允许有<.>,也有的两者皆可,或者允许其他的特殊字符。对此我们只能根据具体的情况加以判断。
文中假设除字母和数字外还允许<.><_>,<.><_>不能出现在首末
位,<.><_>不能相连。域名中各段除数字和字母外只允许出现<->,且<->不能出现在首位和末
位,各段用<.>连接。我们还可从域名得知最后一段大于一位且只有字母。
下面我们就可以依据以上假设写出如下表达式来判断是否该串是一个邮件地址:
^([a-z0-9A-Z]+[-|/.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?/.)+[a-zA-Z]{2,}$
稍作解释:
^:匹配开始
([a-z0-9A-Z]+[-|/.]?)+:数字或字母>1位 + <->或<.>,以上组合重复1次以上
[a-z0-9A-Z]:用户名以数字或字母结尾
@:匹配<@>
(
[a-z0-9A-Z]+:匹配多位数字或字母
(-[a-z0-9A-Z]+)?:匹配 -加多位数字或字母 0次或1次
/.:匹配<.>
)+:匹配括号中内容多次
[a-zA-Z]{2,}:匹配字母2次以上
$:匹配结尾
邮件地址最基本的格式可以看作是
<用户名@域名>。对于用户名,各个ISP没有统一的标准,除了数字和字母外,有的允许有<_>,有的允许有<.>,也有的两者皆可,或者允许其他的特殊字符。对此我们只能根据具体的情况加以判断。
文中假设除字母和数字外还允许<.><_>,<.><_>不能出现在首末
位,<.><_>不能相连。域名中各段除数字和字母外只允许出现<->,且<->不能出现在首位和末
位,各段用<.>连接。我们还可从域名得知最后一段大于一位且只有字母。
下面我们就可以依据以上假设写出如下表达式来判断是否该串是一个邮件地址:
^([a-z0-9A-Z]+[-|/.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?/.)+[a-zA-Z]{2,}$
稍作解释:
^:匹配开始
([a-z0-9A-Z]+[-|/.]?)+:数字或字母>1位 + <->或<.>,以上组合重复1次以上
[a-z0-9A-Z]:用户名以数字或字母结尾
@:匹配<@>
(
[a-z0-9A-Z]+:匹配多位数字或字母
(-[a-z0-9A-Z]+)?:匹配 -加多位数字或字母 0次或1次
/.:匹配<.>
)+:匹配括号中内容多次
[a-zA-Z]{2,}:匹配字母2次以上
$:匹配结尾
相关文章推荐
- 判断一个字符串是否是合法数字串
- 判断一个字符串是否合法
- 【Python】判断一个字符串是否是合法IP地址
- Java 判断一个字符串是否为合法日期
- 判断一个日期字符串是否合法--COleDateTime::ParseDateTime
- 利用Apache的beanutils判断字符串是否为一个合法日期
- 判断一个字符串是否为合法标识符
- 判断一个字符串是否是合法IP地址
- 给定一个Email地址判断是否合法
- [iOS]判断字符串是否为合法邮箱地址
- 判断是否为合法的电子邮件地址
- 判断一个字符串是否为合法ip地址(ipv4)
- python实现判断一个字符串是否是合法IP地址
- 判断一个字符串是否IPV4的地址
- 判断一个字符串的ip是否是IP合法的ip地址
- 判断一个字符串是否为合法IP
- 判断一个字符串的ip是否是IP合法的ip地址
- PHP中如何判断一个字符串是否是合法的日期模式
- 判断一个字符串是否是合法的JSON字符串
- python实现判断一个字符串是否是合法IP地址的示例