<分区>
比如如果用户只输入字母,它会提示用户名必须包含数字,而当用户只输入数字时,它会提示用户名必须包含字母。
这是我的代码,但它不能正常工作。
if(!username.matches("[a-zA-Z0-9]+")){
Toast.makeText(this, "Username must be alphanumeric", Toast.LENGTH_SHORT).show();
return;
}
<分区>
比如如果用户只输入字母,它会提示用户名必须包含数字,而当用户只输入数字时,它会提示用户名必须包含字母。
这是我的代码,但它不能正常工作。
if(!username.matches("[a-zA-Z0-9]+")){
Toast.makeText(this, "Username must be alphanumeric", Toast.LENGTH_SHORT).show();
return;
}
最佳答案
你可以在主要检查之后单独检查它们
if(!username.matches("[a-zA-Z0-9]+")){
Toast.makeText(this, "Username must be alphanumeric", Toast.LENGTH_SHORT).show();
return;
}
if(!username.matches("^.*[0-9].*$")){
Toast.makeText(this, "it should contain numbers", Toast.LENGTH_SHORT).show();
return;
}
if(!username.matches("^.*[a-zA-Z].*$")){
Toast.makeText(this, "it should contain letters", Toast.LENGTH_SHORT).show();
return;
}
编辑:
分解正则表达式:
^.*[0-9].*$
-->
^
<-- 字符串开始
$
<-- 字符串结束
.*
匹配任意(也可以匹配空字符串)
[0-9]
匹配一个数字
您也可以将 .*
替换为 [a-zA-Z0-9]*
但是,第一次检查会解决这个问题,所以它并不是真正必要的。
编辑 2
另一种方法是检查它是否只包含字母或数字:我更喜欢这种方法,因为它更简单,但是必须进行第一次检查
if(!username.matches("[a-zA-Z0-9]+")){
Toast.makeText(this, "Username must be alphanumeric", Toast.LENGTH_SHORT).show();
return;
}
if(username.matches("[a-zA-Z]+")){ // only contains letters
Toast.makeText(this, "it should contain numbers", Toast.LENGTH_SHORT).show();
return;
}
if(username.matches("[0-9]+")){ //only contains numbers
Toast.makeText(this, "it should contain letters", Toast.LENGTH_SHORT).show();
return;
}
关于java - 如何使您的编辑文本字母数字?安卓例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297505/