Android studio—限制手机号规则

Android studio—限制手机号规则

本文主要对博主曾经的博客:Android studio—SQLite登录注册的功能进行进一步完善。除了原有的修改密码,注销账户功能外。
本次加入:1、注册的账户不得重复注册
2、限制用户注册只能使用数字
3、限制用户注册只能使用电话号码

回顾功能博客

Android studio—SQlite数据库注册登录:https://blog.csdn.net/genijmni/article/details/106626300

Android studio—SQlite修改密码:https://blog.csdn.net/genijmni/article/details/106697445

Android studio—SQlite注销账号(删除账号):https://blog.csdn.net/genijmni/article/details/106698703

具体功能完善

1、注册的账户不得重复注册
2、限制用户注册只能使用数字
3、限制用户注册只能使用电话号码

效果预览

效果预览

注册账户不得重复注册

账号重复注册的方法,我们采用与登录相同的方法。验证数据库数据,若数据库已存在该用户数据,则不允许重复注册
若数据库不存在该用户数据,则注册成功

public void onClick(View v) {
    String name = username.getText().toString().trim();
    String password = userpassword.getText().toString().trim();
    ArrayList<User> data = mSQlite.getAllDATA();
    boolean userdata = false;
    for (int i = 0; i < data.size(); i++) {
        User user = data.get(i);   //可存储账号数量
        if (name.equals(user.getName())) {
            userdata= true;
            break;
        } else {
            userdata = false;
        }
    }
     if (userdata)
{Toast.makeText(Register.this,"账户已存在,请勿重复注册",Toast.LENGTH_SHORT).show();}

如此我们能够达到阻止一个手机号多次注册。

注册账户只能使用数字

强制用户只能使用数字作为账号名,一般有三种方法:
第一种方法:在布局文件对控件进行属性控制

android:inputType="number"

使用这个属性控制,但用户点击输入框时,输入法自动弹出只有数字的键盘:
数字键盘
第二种方法:在布局文件对控件进行输入限制:

android:digits="1234567890"

这种方法不限制键盘,只能输入数字,对其他字符自动删除
第三种方法:在JAVA文件对输入框进行数据限制:功能与第二种方法相似都是只能输入数字字符,其余字符自动删除:

username.setFilters(new InputFilter[]{
       DigitsKeyListener.getInstance("0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")//限制输入字符
});

三种方法混合使用时,控件属性优先,也就是当你digits="1234567890"时,这个作为第一限制。哪怕你第三方法使用了允许英文,也无法输入。

注册账户只能使用电话

单纯的强制数字远远不够,我们还需要强制用户使用电话号码注册,这样才能确保用户不会恶意注册多个账户。保证用户账号唯一性。
首先,我们都知道中国的电话为:11位数。
所以我们要先强制字符长度,有两个方法:
第一个方法,通过控件属性进行限制:

android:maxLength="11"

超过11位字符,无法继续输入。
第二个办法,通过JAVA文件对输入框进行数据限制:

username.setFilters(new InputFilter[]{
        new InputFilter.LengthFilter(11),  //限制长度
});

两种方法可以混用,建议用一个即可,不然会增加内存消耗。
限制完了长度,还需要对手机号进行规范规则。
若不限制规则用户可注册:“11111111111“此类无规范账号。
中国手机有自己机号规则,我们套用即可:1+3、5、8+0-9+0-9;
规则书写在主类之中,写在onCreate方法之外

public static boolean isMobile(String string){
    Pattern pattern =null;
    Matcher matcher =null;
    boolean b =false;
    pattern = Pattern.compile("^[1][3,5,8][0-9]{9}$");
    matcher = pattern.matcher(string);
    b = matcher.matches();
    return b ;
}

通过这个规则,限制用户注册时输入的为手机号。
若输入不为11位数,则提示:手机号位数不够
若输入的不为规则内,则提示:请输入正确手机号

if (username.length()!=11){
    Toast.makeText(Register.this,"手机号位数不够",Toast.LENGTH_SHORT).show();
}else if (isMobile(name)==false){
    Toast.makeText(Register.this,"请输入正确的手机号",Toast.LENGTH_SHORT).show();
}

总结

通过对功能的完善,新增了:
1、注册的账户不得重复注册
2、限制用户注册智能使用数字
3、限制用户注册只能使用电话号码
三个功能,进一步完善了APP的丰富度。
我们下篇讲讲完善修改密码功能,增加了一些新技巧功能

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值