黑马程序员技术交流社区
标题:
正则表达式怎样实现检测邮箱格式?
[打印本页]
作者:
张小明
时间:
2011-7-23 23:22
标题:
正则表达式怎样实现检测邮箱格式?
今天看了点关于正则表达式的知识,自己试验了一把,有点疑问,如果用正则表达式来检测邮箱的格式,邮箱要以字母开头,包括6~18个字符,包括字母、数字、下划线,要怎么定义规则呢?如下面简单的测试代码,要怎么定义regex呢?
import java.io.*;
class CheckEmailDemo{
public static void main(String args[]) {
CheckEmail();
}
public static void CheckEmail()
{
String emailName = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入邮箱号:");
try{
emailName = br.readLine();
}catch(Exception e){}
String regex = "";//此处要怎么写呢?
boolean flag = emailName.matches(regex);
if(flag)
System.out.println("邮箱地址"+emailName+"格式是正确的。");
else
System.out.println("邮箱地址"+emailName+"格式是非法的。");
}
}
复制代码
因为刚接触,如果方便,最好解释一下,共同学习,吼吼~
[
本帖最后由 张小明 于 2011-07-23 23:40 编辑
]
作者:
匿名
时间:
2011-7-23 23:36
/^(([\_\w]+)\.?)+@(([\_\w]+)\.?)+\.[a-zA-Z]{2,4}$/
作者:
匿名
时间:
2011-7-23 23:42
\\p{Alpha}\\w{2,15}[@][a-z0-9]{3,}[.]\\p{Lower}{2,}
这些题,百度一大把。各式各样的,分呀分~~都是积分惹的祸。无奈....
作者:
匿名
时间:
2011-7-23 23:43
第一个“_”不应该是下划,打错了。第一个w是大写。第二个下划线去掉…俺用手机偷懒,悲剧了,
作者:
匿名
时间:
2011-7-23 23:45
转个不用正则表达式的.[code=jscript]import java.util.Scanner;
public class Test
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
String name=sc.next();
if(chose(name))
{
System.out.println("邮箱合法");
}
else
{
System.out.println("邮箱非法");
}
}
public static boolean chose(String a)
{
String c;
String d;
char b=a.charAt(0);
if(a.equals(""))
{
return false;
}
if(b==' ' && b=='@' && b=='.')
{
return false;
}
c=a.substring(a.length()-4,a.length());
if(!(c.equals(".com")))
{
return false;
}
//用判定"@."是否存在好一些
if(!a.contains("@."))
{
return false;
}
}[/code]
作者:
匿名
时间:
2011-7-24 00:19
Pattern p = Pattern.compile("[\\w]+@[\\w]+\\.[\\w]+");
作者:
詹季春
时间:
2011-7-24 09:22
[code=java]//提交mail地址的文本框
var strm = document.myform.Mail.value
//验证Mail的正则表达式,^[a-zA-Z0-9_-]:开头必须为字母,下划线,数字,
var regm = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (!strm.match(regm) && strm!="")
{
alert("邮箱地址格式错误或含有非法字符!\n请检查!");
document.myform.Mail.select();
return false;
} [/code]
[
本帖最后由 詹季春 于 2011-07-24 09:24 编辑
]
作者:
匿名
时间:
2011-7-24 15:23
[code=java]public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
String style =
"^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+\\.)+(com|gov|net|com\\.cn|edu\\.cn)$";
Pattern ptt = Pattern.compile(style);
Matcher mch=ptt.matcher(email);
ActionErrors errors = new ActionErrors();
if ((name == null || name.equals(""))) {
ActionError error = new ActionError("error.name");
errors.add("name", error);
} else
if (!mch.matches()) {
ActionError error = new ActionError("error.email");
errors.add("email", error);
}
return errors;
}[/code]
作者:
赵倩倩
时间:
2012-6-13 17:21
String mail="abc1244@sina.com";
String reg="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//精确的匹配
//有个不精确匹配 \\w+@w+(\\.\\w+)+
这个是我的代码 两个一个精确一个不精确的 这些都是基本啊 写个邮箱 看正则表达式的JDK自己对着 写就行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2