首页 > 学院 > 开发设计 > 正文

注册页面密码及电话号码校验功能

2019-11-09 15:30:18
字体:
来源:转载
供稿:网友

最近的任务是带短信验证的注册功能和密码找回功能,在注册页面时,通过校验手机号和密码符合规定格式后才掉接口发送短信给用户,

所以写了一个小demo用来校验手机号和密码。

说明:当手机号为11位数字并且密码是6~12位任意字符,注册按钮可用,点击按钮会检查手机的格式是否符合移动、联通、电信的格式,如果不符合会弹出吐司提示“号码不符合规范”’

目标手机号格式:

移动: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

总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9

目标密码的格式6到12个任意字符

效果图

下面奉上demo的简单代码:

MainActivity也是唯一的activity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    PRivate EditText mEdt1;    private Button mLoginbtn;    private EditText mEdt2;    private Editable temp;    private LinearLayout mLv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        //文本录入框1        mEdt1 = (EditText) findViewById(R.id.edt1);        //文本录入框2        mEdt2 = (EditText) findViewById(R.id.edt2);        //注册按钮        mLoginbtn = (Button) findViewById(R.id.btn);        mLoginbtn.setOnClickListener(this);        //关闭软件盘        mLv = (LinearLayout) findViewById(R.id.activity_main);        mLv.setOnClickListener(this);        //调用数字键盘        mEdt1.setInputType(InputType.TYPE_CLASS_NUMBER);        //文本输入框无焦点时阻止输入法弹出                //判断文本框2的数据类型        mEdt2.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence s, int start, int count, int after) {            }            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {            }            @Override            public void afterTextChanged(Editable s) {                //判断密码6~12任意字符                if (s.toString().matches("^//w{6,12}$")) {                    mLoginbtn.setEnabled(true);                } else {                    mLoginbtn.setEnabled(false);                }            }        });    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.activity_main:                InputMethodManager imm = (InputMethodManager)                        getSystemService(Context.INPUT_METHOD_SERVICE);                imm.hideSoftInputFromWindow(view.getWindowToken(), 0);                break;            case R.id.btn:                //匹配手机号正则                /* 说明:移动: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                    * 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9                    * ^(13|15|18)[0-9]{9}$)|(^0[1,2]{1}//d{1}-?//d{8}$ */                if(!mEdt1.getText().toString().matches("^(13|15|18)[0-9]{9}$")){                    Toast.makeText(this, "号码输入有误", Toast.LENGTH_SHORT).show();                }else {                    Toast.makeText(this, "号码正确", Toast.LENGTH_SHORT).show();                }                break;        }    }}布局代码

<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:clickable="true"    android:orientation="vertical">    <EditText        android:id="@+id/edt1"        android:layout_width="match_parent"        android:layout_height="50dp"        android:hint="请输入手机号"        android:inputType="number"        android:maxLength="11"        android:gravity="center_horizontal"/>    <EditText        android:id="@+id/edt2"        android:layout_width="match_parent"        android:layout_height="50dp"        android:hint="请输入密码"        android:maxLength="12"        android:gravity="center_horizontal"/>    <Button        android:id="@+id/btn"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="注册"/></LinearLayout>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表