Android studio—限制手机号规则
文章目录
- Android studio—限制手机号规则
- 回顾功能博客
- 具体功能完善
- 效果预览
- 注册账户不得重复注册
- 注册账户只能使用数字
- 注册账户只能使用电话
- 总结
本文主要对博主曾经的博客:Android studio—SQLite登录注册的功能进行进一步完善。除了原有的修改密码,注销账户功能外。
本次加入:1、注册的账户不得重复注册
2、限制用户注册只能使用数字
3、限制用户注册只能使用电话号码
回顾功能博客
Android studio—SQlite数据库注册登录:
Android studio—SQlite修改密码:
Android studio—SQlite注销账号(删除账号):
具体功能完善
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的丰富度。
我们下篇讲讲完善修改密码功能,增加了一些新技巧功能