现在的位置: 首页 > 综合 > 正文

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

2013年07月03日 ⁄ 综合 ⁄ 共 3573字 ⁄ 字号 评论关闭
下文中的{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();

抱歉!评论已关闭.