android验证邮箱输入是否合法

 更新时间:2019年05月24日 10:56:23   作者:我是很棒的啊  
这篇文章主要为大家详细介绍了android验证邮箱输入是否合法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了android验证邮箱输入是否合法的具体代码,供大家参考,具体内容如下

下面是验证手机号和邮箱是否合法的方法,直接将这两个静态方法考入自己的项目中就可以用啦

public class MainActivity extends Activity implements View.OnClickListener {

 private Button btn;
 private EditText et;
 private TextView tv;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  btn = (Button) findViewById(R.id.btn);
  et = (EditText) findViewById(R.id.et);
  tv = (TextView) findViewById(R.id.tv);
  btn.setOnClickListener(this);
 }

 @Override
 public void onClick(View view) {
  switch (view.getId()) {
   case R.id.btn:

    String number = et.getText().toString();
    boolean judge = isMobile(number);
    if (judge == true) {
     tv.setText("手机号合法");
    } else {
     tv.setText("手机号不合法");
    }
    break;
  }
 }


// /**
//  * 验证手机格式
//  */
 public static boolean isMobile(String number) {
 /*
 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
 联通:130、131、132、152、155、156、185、186
 电信:133、153、180、189、(1349卫通)
 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
 */
 //"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
  String num = "[1][358]\\d{9}";
  if (TextUtils.isEmpty(number)) {
   return false;
  } else {
   //matches():字符串是否在给定的正则表达式匹配
   return number.matches(num);
  }
 }
//邮箱验证
 public static boolean isEmail(String strEmail) {
  String strPattern = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
  if (TextUtils.isEmpty(strPattern)) {
   return false;
  } else {
   return strEmail.matches(strPattern);
  }
 }


}

了解正则表达式

学习过程

1.概念:“正则表达式”(Regular Expression)就是一个特殊的字符串,用来匹配字符串与查找字符串

2.java基础架包中:
java.util.regex 包主要由三个类所组成:Pattern、Matcher 和 PatternSyntaxException。

3.正则表达式的作用:

1).判断字符串的正确性
2).查找字符串
3).在其他类特别是String中的使用

// 1.判断字符串的正确性
 // 判断电话号码是否是以136开头的11个数字的电话号码
 private void m1(String s) {
  // 方式一:
  // boolean b = Pattern.matches("136\\d{8}", "13698987654");
  // 方式二:
  Pattern p = Pattern.compile("136\\d{8}");
  Matcher m = p.matcher(s);// 正则表达式 电话号号
  boolean b = m.matches();// 判断是否匹配
  System.out.println(b);// true
}
// 2.查找字符串中是否有两个数字组成的子字符串
 private void m3() {
  Pattern p = Pattern.compile("\\d{2}");
  Matcher m = p.matcher("a29abbccsdf");
  boolean b = m.find();
  System.out.println(b);// true
 }
// 3.在其它类特别是String中的使用
 // 通过运算符把字符串拆开
 public void m4() {
  // String s = "23+234-123*234/1000";
  // String[] a = s.split("\\+|\\-|\\*|/");

  String s = "11+22+33*66";
  String[] a = s.split("\\*");
  for (String string : a) {
   System.out.println(string);
  }
 }
//4.示例:判断字符串是否以ax开头by结尾,并且中间有仅只有一个字符
public class Test {
 public boolean m1(String str) {

// 方式一:
// Pattern p = Pattern.compile("ax.by");
// Matcher m = p.matcher(str);
// boolean b = m.matches();

// 方式二
 boolean b = Pattern.matches("ax.by", str);
 return b;
 }
 public static void main(String[] args) {
 Test t = new Test();
 System.out.println(t.m1("axmby"));
 }
}

4.提示1:正则表达式还可以在字符串中查找匹配的子字符串; 在其它类中的使用…..。(后面章节会讲到)

5.提示2:

● Pattern 对象表示一个已编译的正则表达式。Pattern 类没有提供公共的构造方法。 必须调用公共的静态 compile 方法,它将返回一个 Pattern 对象。
● Matcher 是一个靠着输入的字符串来解析这个模式和完成匹配操作的对象。 Matcher 也没有定义公共的构造方法,需要通过调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
● PatternSyntaxException 对象是一个未检查异常,指示了正则表达式中的一个语法错误。

正则表达式通配符

学习过程

一、匹配字符的通匹符

1.”.” —> 用于匹配一个任意的字符

比如: “t.n”,它匹配“tan”、“ten”、“tin”和“ton”,还匹配“t#n”、“tpn”甚至“t n”
Pattern p = Pattern.compile(“a.b.c.d”);
Matcher m = p.matcher(“axbac2d”);// 正则表达式 电话号号
boolean b = m.matches();// 判断是否匹配 true

2.”[]” —>为了解决”.”匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符:

3.”|”—>如果除了上面匹配的所有单词(tan”、“Ten”、“tin”和“ton”)之外,你还想要匹配“toon”,那么,你可以使用“|”操作符。“|”操作符的基本意义就是“或”运算。要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。这里不能使用方扩号,因为方括号只允许匹配单个字符;这里必须使用圆括号“()”, 它的作用与算术表达式中的作用是一样的,表示一个整体。

4.“-”表示数字或字母的范围,

[0-9]表示0到9中的其中一个字符,[3-8]表示3到8中的一个字符
[a-z]表示a到z中的其中一个字符,[b-m]表示b到m中的一个字符
[A-Z]表示A到Z中的其中一个字符
[b-d3-8]表示b到z或3到8中其中一个字符
[a-dx-z]表示a到d或x到z中其中一个字符

示例:

[a-c][0-9]{3}可以匹配a234,b112,c223等.

5.”^” —> 即非,用来确定紧靠该符号右边的符号不能出现

5.1 [^0-9]表示不可以为0到9中的一个字符
5.2 [^A]表示不可以为A的字符
5.3 [^a-c]表示不可以为a到c的字符

6.快捷符号

7.”\”表示转义

如果正则表达式中要使用的字符与通配符冲突,则在前加上”\”表示不是通配符使用
比如”[0-9]{3}\*{2}[0-9]{2}a*” 中不是次数,而是字符。它可以匹配0到9的三个数字开头,后面是两个*,再后是0到9的2个数字最后是0到多个a字符。
这个”234**23a”可以匹配上面的正则表达式。

8.”"表示结束,每个正则表达式后面都可以加上"表示结束,每个正则表达式后面都可以加上,实质上加与不加作用相同

9.特殊的匹配

[\u4e00-\u9fa5]匹配汉字
示例”[\u4e00-\u9fa5]{3}”, 可以匹配三个汉字组成的字符串

二、匹配次数的通匹符

这些符号用来确定紧靠该符号左边的符号出现的次数:

示例1:a*Hello可以匹配以Hello结尾,以0到多个a开头的字符串,如Hello,aHello,aaHello,aaaHello
示例2:MyA*Hello可以匹配以My开头,以Hello结尾,中间可以有0到多个A,如MyAAAHello
示例3:HelloE+World可以匹配以Hello开头,以World结尾,中间可以有1到多个E,如HelloEEWorld
示例4:HelloE?World可以匹配以Hello开头,以World结尾,中间必须有0到1个E
示例5:HelloE{3}World可以匹配以Hello开头,以World结尾,中间必须有3个E
示例6:HelloE{2,4}World可以匹配以Hello开头,以World结尾,中间必须有2到4个E
示例7:Hello[^abc]可以匹配以Hello开头,不能以a或b或c结尾

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Android应用程序签名步骤及相关知识介绍

    Android应用程序签名步骤及相关知识介绍

    本文主要介绍Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等,感兴趣的朋友可以参考下哈
    2013-04-04
  • 利用Android实现比较炫酷的自定义View

    利用Android实现比较炫酷的自定义View

    自定义View、多线程、网络,被认为是Android开发者必须牢固掌握的最基础的三大基本功,这篇文章主要给大家介绍了关于如何利用Android实现比较炫酷的自定义View的相关资料,需要的朋友可以参考下
    2021-07-07
  • Android 连接Wifi和创建Wifi热点的实例

    Android 连接Wifi和创建Wifi热点的实例

    本篇文章介绍了Android 连接Wifi和创建Wifi热点,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2016-10-10
  • Android中Glide获取图片Path、Bitmap用法详解

    Android中Glide获取图片Path、Bitmap用法详解

    这篇文章主要介绍了Android中Glide获取图片Path、Bitmap用法以及代码分析,需要的朋友们参考一下吧。
    2017-12-12
  • Android仿微信顶/底部菜单栏效果

    Android仿微信顶/底部菜单栏效果

    这篇文章主要介绍了Android仿微信底部菜单栏和顶部菜单栏实现效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Android编程实现的短信编辑器功能示例

    Android编程实现的短信编辑器功能示例

    这篇文章主要介绍了Android编程实现的短信编辑器功能,涉及Android权限控制、界面布局及短信功能相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 在Android环境下WebView中拦截所有请求并替换URL示例详解

    在Android环境下WebView中拦截所有请求并替换URL示例详解

    这篇文章主要介绍了在Android环境下WebView中拦截所有请求并替换URL示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Android Activity Results API代替onActivityResult处理页面数据

    Android Activity Results API代替onActivityResul

    说到onActivityResult,我们已经非常熟悉来,通过在A activity启动B activity并且传入数据到B中,然后在A中通过onActivityResult来接收B中返回的数据。在最新的activity-ktx的beta版本中,谷歌已经废弃了onActivityResult
    2022-09-09
  • 去除arraylist容器中的相同的对象元素的方法

    去除arraylist容器中的相同的对象元素的方法

    下面小编就为大家带来一篇去除arraylist容器中的相同的对象元素的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Android标题栏最右边添加按钮的实例

    Android标题栏最右边添加按钮的实例

    这篇文章主要介绍了Android标题栏最右边添加按钮的实例的相关资料,希望通过本文大家能掌握如何操作,需要的朋友可以参考下
    2017-09-09

最新评论