zoukankan      html  css  js  c++  java
  • Android中利用正则表达式验证手机号是否合法

    利用正则表达式来验证手机号是否合法,现在我们简单使用一下,这个在实际的应用中很实用。

    例:在输入框中输入手机号,判断是否合法,

    MainActivity中:

    
    package com.example.mac.judgedemo;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity 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、152、157(TD)、158、159、178(新)、182、184、187、188
        联通:130、131、132、152、155、156、185、186
        电信:133、153、170、173、177、180、181、189、(1349卫通)
        总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
        */
            String num = "[1][34578]\d{9}";//"[1]"代表第1位为数字1,"[34578]"代表第二位可以为3、4、5、7、8中的一个,"\d{9}"代表后面是可以是0~9的数字,有9位。
            if (TextUtils.isEmpty(number)) {
                return false;
            } else {
                //matches():字符串是否在给定的正则表达式匹配
                return number.matches(num);
            }
        }
    
        @Override
        public void onPointerCaptureChanged(boolean hasCapture) {
    
        }
    }
    

    MainActivity的布局文件:

    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_margin="10dp"
        tools:context="com.example.mac.judgedemo.MainActivity">
    
        <EditText
            android:id="@+id/et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入手机号" />
    
        <Button
            android:id="@+id/btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="判断" />
    
        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示结果" />
    </LinearLayout>
  • 相关阅读:
    软件工程第一次结对作业
    软件工程第二次作业
    vue之vuex
    ceshi
    第3次 结构与部分
    第二次作业
    获得领跑衫感言
    期末总结
    第十四,十五周作业
    第七周作业
  • 原文地址:https://www.cnblogs.com/lenkevin/p/8125236.html
Copyright © 2011-2022 走看看