我的Android应用程序中有一个登录表单,问题是我输入special characters
时它绕过了我的所有检查。我的意思是说它通过无效密码登录并重定向到下一个活动。我使用了 EditText 的 android:digits
属性。它在简单的 EditText 上工作正常但在我设置inputType
属性时无效。
XML:
<EditText
android:layout_weight="2"
android:id="@+id/edt_signup_password"
android:layout_width="match_parent"
android:inputType="textPassword"
android:digits="0,1,2,3,4,5,6,7,8,9,qwertzuiopasdfghjklyxcvbnm"
android:background="@drawable/edittext"
android:padding="4dp"
android:maxLength="15"
android:layout_height="wrap_content"
android:ems="10" />
如何在android:inputType="textPassword"
时限制特殊字符。在此先感谢
答案 0 :(得分:0)
通过java执行此操作的一种方法是使用正则表达式。
您可以定义要允许的字符:
final static String INPUT = "[ a-zA-Z0-9_-]+";
final static Pattern PATTERN = Pattern.compile(INPUT);
此INPUT
模式允许使用空格,下划线,短划线,0-9以及大写和小写字母。
然后根据模式检查输入的文本,您将使用以下内容:
Matcher matcher = PATTERN.matcher(textView.getText().toString());
if (matcher.matches()) {
//login here
}
else {
//do something else
}