适用于安卓的表单验证库?
2022-09-03 01:08:58
有没有适用于Android的成熟表单验证API /库?我发现 http://code.google.com/p/android-binding/ 但似乎正在大量开发中。
更新:只是为了澄清我的问题。目前,我已经强制硬编码了表单验证。我想知道,是否有一个成熟的表单验证库允许我以声明方式指定验证器(例如,直接在XML中使用注释或在代码中使用注释或通过功能流畅的方式,...)。
有没有适用于Android的成熟表单验证API /库?我发现 http://code.google.com/p/android-binding/ 但似乎正在大量开发中。
更新:只是为了澄清我的问题。目前,我已经强制硬编码了表单验证。我想知道,是否有一个成熟的表单验证库允许我以声明方式指定验证器(例如,直接在XML中使用注释或在代码中使用注释或通过功能流畅的方式,...)。
该库现在支持注释,您只需添加注释即可验证字段。下面是一个示例代码片段。
@NotEmpty
@Order(1)
private EditText fieldEditText;
@Checked(message = "You must agree to the terms.")
@Order(2)
private CheckBox iAgreeCheckBox;
@Length(min = 3, message = "Enter atleast 3 characters.")
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets")
@Order(3)
private TextView regexTextView;
@Password
@Order(4)
private EditText passwordEditText;
@ConfirmPassword
@Order(5)
private EditText confirmPasswordEditText;
订单批注是可选的,它指定字段的验证顺序。仅当您希望在验证期间保留字段的顺序时,才需要这样做。还有其他注释,如 、 、 等,@Email
@IpAddress
@Isbn
Android Studio / Gradle
compile 'com.mobsandgeeks:android-saripaar:2.0.2'
检查最新的可用版本。
Eclipse
你可以从这里下载 jar 并将其添加到你的 Android 目录中。libs
Old Answer (Saripaar v1)
我编写了一个用于验证的库。这是相关的博客和项目。我已经成功地在生产应用程序中使用它,它目前满足了我们在Android验证表单中遇到的大多数常见场景。有些规则是开箱即用的,如果你需要编写自己的规则,你可以通过编写自己的规则来做到这一点。
下面是一个代码段,说明了库的用法。
validator.put(nameEditText, Rules.required("Name is required."));
validator.put(nameEditText, Rules.minLength("Name is too short.", 3));
validator.put(emailEditText, Rules.regex("Email id is invalid.", Rules.REGEX_EMAIL, trim));
validator.put(confirmPwdEditText, Rules.eq("Passwords don\'t match.", pwdEditText);
还有允许您执行的规则和对多个规则进行操作。还有一个 and 规则,允许您在多个视图之间执行验证。or
and
&&
||
compositeOr
compositeAnd
如果其中任何一个看起来不够,您可以随时通过扩展 Rule 类来编写自己的规则。
我会推荐OVal
public class BusinessObject {
@NotNull
@NotEmpty
@Length(max=32)
private String name;
...
}
// collect the constraint violations
List<ConstraintViolation> violations = validator.validate(bo);
我计划在我的下一个项目中使用它,因为is有各种表达式语言,但只有Java是硬需要的。
它不是JSR303编译的,但也支持这些注释。