您的位置:首页 > 移动开发 > Android开发

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

2011-07-22 16:45 459 查看
下文中的{1}quot;;
原文是$";被这里的博客给转了。。。copy代码的朋友要注意替换一下

/*检查字符串是否为电话号码的方法,并返回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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: