Java EditText验证未按预期工作
我已经开发了android应用程序,在那里我对EditText字段进行了前端验证,它只接受3个字母和4个数字。 它在登台环境中进行了测试,前端验证工作正常,我们没有后端验证。但过了一段时间,当我们检查 在我们的实时数据库上。我们发现一些数据只有与上述字段相关的数字。似乎在某些设备上验证不会起作用 我们收到的数据只有数字。我们收到无效数据的原因可能是什么Java EditText验证未按预期工作,java,android,android-edittext,Java,Android,Android Edittext,我已经开发了android应用程序,在那里我对EditText字段进行了前端验证,它只接受3个字母和4个数字。 它在登台环境中进行了测试,前端验证工作正常,我们没有后端验证。但过了一段时间,当我们检查 在我们的实时数据库上。我们发现一些数据只有与上述字段相关的数字。似乎在某些设备上验证不会起作用 我们收到的数据只有数字。我们收到无效数据的原因可能是什么 // Check for id is valid format like "ABC1234". String alphaLen = ge
// Check for id is valid format like "ABC1234".
String alphaLen = getResources().getString(R.string.rokaIdAlphaLen);
String numLen = getResources().getString(R.string.rokaIdNumericLen);
if (rokaId.length() > 0 && !Validate.validateRokaId(rokaId, alphaLen, numLen)) {
etRokaid.setError(getString(R.string.error_incorrect_format));
focusView = etRokaid;
cancel = true;
}
public static boolean validateRokaId(String params, String alphaLen, String numLen) {
boolean success = false;
int alphaLength = 0;
int numericLength = 0;
alphaLength = Integer.parseInt(alphaLen.trim());
numericLength = Integer.parseInt(numLen.trim());
if (params.length() == alphaLength + numericLength) {
if (params.substring(0, alphaLength).matches("[a-zA-Z]*")) {
if (params.substring(alphaLength, alphaLength+numericLength).matches("[0-9]*")) {
success = true;
} else {
success = false;
}
} else {
success = false;
}
} else {
success = false;
}
return success;
}
首先,您需要在XML文件中设置编辑文本属性android:digits以提高安全性,这样即使您签入了验证,用户也不会插入其他特殊字符
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
现在,对于3个字符和4个数字的格式,我们创建一个正则表达式。您可以创建自己的正则表达式并从中进行测试。我从此网站创建此正则表达式:
[A-Z]{3}\d{4}
现在只需匹配此模式
if (NAME_PATTERN.matcher(edtText.getText().toString().trim()).matches())
{
// Write your logic if pattern match
}
else
{
// Write your logic if pattern not match
}
显示您的代码。您始终需要验证客户端和服务器端。在最坏的情况下,一些恶意用户已经侵入了你的应用程序。最好的情况是,有一些用例可以绕过你的Android验证。请包括一个。添加的验证logic@abc123先生,看我的答案,我在我的工作室里测试过这个,它非常有效。我希望这能解决你的问题。
if (NAME_PATTERN.matcher(edtText.getText().toString().trim()).matches())
{
// Write your logic if pattern match
}
else
{
// Write your logic if pattern not match
}