android 电话号码正则,android 入门学习笔记 正则匹配 电话号码 email

下文中的{1}quot;;原文是$";被这里的博客给转了。。。copy代码的朋友要注意替换一下

ea342804d892c3066c177c13b5a53d6e.png

/*检查字符串是否为电话号码的方法,并返回true or false的判断值*/

public static boolean isPhoneNumberValid(String phoneNumber)

{

boolean isValid = false;

/* 可接受的电话格式有:

* ^\\(? : 可以使用 "(" 作为开头

* (\\d{3}): 紧接着三个数字

* \\)? : 可以使用")"接续

* [- ]? : 在上述格式后可以使用具选择性的 "-".

* (\\d{4}) : 再紧接着三个数字

* [- ]? : 可以使用具选择性的 "-" 接续.

* (\\d{4})$: 以四个数字结束.

* 可以比较下列数字格式:

* (123)456-78900, 123-4560-7890, 12345678900, (123)-4560-7890

*/

String expression = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5}){1}quot;;

String expression2 ="^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4}){1}quot;;

CharSequence inputStr = phoneNumber;

/*创建Pattern*/

Pattern pattern = Pattern.compile(expression);

/*将Pattern 以参数传入Matcher作Regular expression*/

Matcher matcher = pattern.matcher(inputStr);

/*创建Pattern2*/

Pattern pattern2 =Pattern.compile(expression2);

/*将Pattern2 以参数传入Matcher2作Regular expression*/

Matcher matcher2= pattern2.matcher(inputStr);

if(matcher.matches()||matcher2.matches())

{

isValid = true;

}

return isValid;

}

需要引入

import java.util.regex.Matcher;

import java.util.regex.Pattern;

下面是拨打电话的code,这里涉及到上文所提到的intent机制,另外一点就是掌握Toast(信息提示)的使用语法

/*设置Button对象的OnClickListener来聆听OnClick事件*/

mButton1.setOnClickListener(new Button.OnClickListener()

{

@Override

public void onClick(View v)

{

try

{

/*取得EditText中用户输入的字符串*/

String strInput = mEditText1.getText().toString();

if (isPhoneNumberValid(strInput)==true)

{

/*建构一个新的Intent

运行action.CALL的常数与通过Uri将字符串带入*/

Intent myIntentDial = new

Intent

(

"android.intent.action.CALL",

Uri.parse("tel:"+strInput)

);

/*在startActivity()方法中

带入自定义的Intent对象以运行拨打电话的工作 */

startActivity(myIntentDial);

mEditText1.setText("");

}

else

{

mEditText1.setText("");

Toast.makeText(

EX05_02.this, "输入的电话格式不符",

Toast.LENGTH_LONG).show();

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

});

发短信的code 需要引入

import android.telephony.gsm.SmsManager;

import android.app.PendingIntent;//引入它才能进行 getBrocast()

/*建构一取得default instance的 SmsManager对象 */

SmsManager smsManager = SmsManager.getDefault();

// TODO Auto-generated method stub

/*检查收件人电话格式与短信字数是否超过70字符*/

if(isPhoneNumberValid(strDestAddress)==true &&

iswithin70(strMessage)==true)

{

try

{

/*

* 两个条件都检查通过的情况下,发送短信

* 先建构一PendingIntent对象并使用getBroadcast()广播

* 将PendingIntent,电话,短信文字等参数

* 传入sendTextMessage()方法发送短信

*/

PendingIntent mPI = PendingIntent.getBroadcast

(EX05_03.this, 0, new Intent(), 0);

smsManager.sendTextMessage

(strDestAddress, null, strMessage, mPI, null);

}

catch(Exception e)

{

e.printStackTrace();

}

Toast.makeText

(

EX05_03.this,"送出成功!!" ,

Toast.LENGTH_SHORT

).show();

mEditText1.setText("");

mEditText2.setText("");

}

发email的code 需要引入

import android.content.Intent;

mButton01.setOnClickListener(new Button.OnClickListener()

{

@Override

public void onClick(View v)

{

// TODO Auto-generated method stub

/*自定义一Intent来运行寄送E-mail的工作*/

Intent mEmailIntent = new Intent(android.content.Intent.ACTION_SEND);

/*设置邮件格式为"plain/text"*/

mEmailIntent.setType("plain/text");

/** 取得EditText01,02,03,04的值作为

* 收件人地址,附件,主题,正文

*/

strEmailReciver = new String[]{mEditText01.getText().toString()};

strEmailCc = new String[]{mEditText02.getText().toString()};

strEmailSubject = mEditText03.getText().toString();

strEmailBody = mEditText04.getText().toString();

/*将取得的字符串放入mEmailIntent中*/

mEmailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);

mEmailIntent.putExtra(android.content.Intent.EXTRA_CC, strEmailCc);

mEmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);

mEmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strEmailBody);

startActivity(Intent.createChooser(mEmailIntent, getResources().getString(R.string.str_message)));

}

});

正则验证email地址

String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]{1}quot;;

Pattern p = Pattern.compile(strPattern);

Matcher m = p.matcher(strEmail);

return m.matches();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.example.tiger.tellphone; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt = (Button) findViewById(R.id.bt); //设置监听 bt.setOnClickListener(new Myclick()); } class Myclick implements View.OnClickListener { private static final String TAG = "MainActivity"; @Override public void onClick(View arg0) { // TODO Auto-generated method stub System.out.print("按钮被点击了"); EditText et = (EditText) findViewById(R.id.et); String phone = et.getText().toString(); //在一个应用中启动另一个应用,在拨号器应用里启动打电话应用 //Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常 //设置动作,通过意图告知系统 if (isMobileNO(phone)){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL);//设置动作,打电话 intent.setData(Uri.parse("tel:"+phone)); startActivity(intent);//把意图告诉系统 }else { Log.d(TAG, "onClick: asdasdas"); } } } /** * 验证手机格式 */ public static boolean isMobileNO(String mobiles) { /* 移动: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 */ String telRegex = "[1][358]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 if (TextUtils.isEmpty(mobiles)){ return false; } else { return mobiles.matches(telRegex); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值