NextInputs

Android 校验库
授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 手机开发包
软件类型 开源软件
地区 国产
投 递 者 司空朝
操作系统 Android
开源组织
适用人群 未知
 软件概览

输入图片说明

NextInputs 基于 FireEye 升级而来, 继承了FireEye校验功能,并具有良好的扩展性,你可以根据业务需要创建自定义的校验规则。

NextInputs项目地址:https://github.com/yoojia/NextInputs

NextInputs是数据校验库的核心,为Android开发,使用Android的一些组件特性,另创建NextInputs-Android项目。

NextInputs-Android项目地址:https://github.com/yoojia/NextInputs-Android


NextInputs 特点

  • 轻量级,纯JDK实现,无第三方依赖;

  • 小巧,Jar文件仅38K;

  • 内置大量常用校验模式;

  • 支持自定义校验模式扩展;

  • 支持自定义校验目标扩展;

  • 支持自定义错误消息提示;

NextInputs 内建了两种校验模式分类:静态校验模式、数值校验模式。 使用NextInputs能够极大地提升开发效率,内置的多个校验模式已能应付开发常用的校验需求,如有特殊校验需求,通过扩展接口也能快速解决。


使用示例

NextInputs inputs = new NextInputs();
inputs.add(Inputs.editText(mUsernameEditText),
        StaticPattern.Required(),
        StaticPattern.Email()
); boolean passed = inputs.test();

配置 Gradle 依赖

dependencies {
    compile 'com.github.yoojia:next-inputs:<latest-version>' }

当前最新版本为 1.0:

dependencies {
    compile 'com.github.yoojia:next-inputs:1.0' }

StaticPattern - 静态校验模式

静态校验模式也可以称为数据格式匹配模式。在校验时不需要其它辅助参数,而是直接校验输入数据的格式是否符合要求。 NextInputs目前内置包含以下几种静态校验模式,在未来版本也会加入其它使用频率较高的模式:

  • Required - 必填模式

  • NotBlank - 非空模式

  • Digits - 数字模式

  • Email - 邮件地址模式

  • IPv4 - IP地址模式

  • Host - 域名模式

  • URL - URL地址模式

  • Numeric - 数值模式

  • BlankCard - 银行卡/信用卡号码模式

  • ChineseIDCard 身份证号码模式

  • ChineseMobile 手机号码模式(国内手机号)

  • IsTrue - 结果为True模式

  • IsFalse - 结果为False模式

Required - 必填模式

设置Required模式后,输入内容不能为空,也是NextInputs不允许空值的两条校验规则之一

在设置Required模式后,Required模式在校验时会优先于其它模式。其它校验模式在默认情况下将按代码添加顺序依次执行。

注意:

  • Required的校验优先级默认为 StaticPattern/ValuesPattern.PRIORITY_REQUIRED(-1024),其它优先级为StaticPattern/ValuesPattern.PRIORITY_GENERAL(0)。

  • 如果输入条目没有添加Required校验模式(或者NotBlank模式),在输入内容为空的情况下,校验结果是通过(Passed)的。

NotBlank - 非空数据模式

设置Required模式后,输入内容不能是任何空值,也是NextInputs不允许空值的两条校验规则之一

StaticPattern.Required(),输入内容不能为任何空数据,除空数据外,还包括任意数量的纯空格、制表符等。

Digits - 数字模式

StaticPattern.Digits(),输入内容只能是纯数字。

Email - 邮件地址模式

StaticPattern.Email(),输入内容必须是有效的电子邮件地址。

IPv4 - IP地址模式

StaticPattern.IPv4(),输入内容必须是有效的IPv4地址。

Host - 主机地址模式

StaticPattern.Host(),输入内容必须是有效的主机地址。这个模块包含了IPv4的校验。

URL - URL地址模式

StaticPattern.URL(),输入内容必须是有效的URL地址。

Numeric - 数值模式

StaticPattern.Numeric(),输入内容必须是有效的数值。

BlankCard - 银行卡/信用卡号码模式

StaticPattern.BlankCard(),输入内容必须是有效的银行卡号或者信用卡号。这个模式在实现上,使用银行卡号校验算法(Luhn)来校验,可以支持13位到19位长度的有效卡号。

ChineseIDCard 身份证号码模式

StaticPattern.ChineseIDCard(),输入内容必须是有效的中国居民身份证号码。这个模式支持15位和18位身份证号。

ChineseMobile 手机号码模式(国内手机号)

StaticPattern.ChineseMobile(),输入内容必须是有效的手机号。这个手机号必须是11位国内手机号,其它国家或者地区的手机号暂不支持。

IsTrue - 结果为True模式

StaticPattern.IsTrue(),输入内容必须是True值。通常用于校验RadioBotton或者CheckBox等。

IsFalse - 结果为False模式

StaticPattern.IsFalse(),输入内容必须是False值。通常用于校验RadioBotton或者CheckBox等。


ValuesPattern - 数值校验模式

数值校验模式需要指定校验参数来完成校验。 NextInputs目前内置包含以下几种数值校验模式,在未来版本也会加入其它使用频率较高的模式:

  • Required - 必填模式,与静态校验模式的必填模式相同。

  • MinLength - 最小内容长度

  • MaxLength - 最多内容长度

  • RangeLength - 内容长度在指定范围内

  • MinValue - 最小值

  • MaxValue - 最大值

  • RangeValue - 数值范围

  • EqualsTo - 与指定内容相同

  • NotEqualsTo - 与指定内容不相同

Required - 必填项目

ValuesPattern.Required(),与StaticPattern.Required相同。

MinLength - 最小内容长度

ValuesPattern.MinLength(minLength),输入内容的长度至少(包括)为指定长度。

MaxLength - 最多内容长度

ValuesPattern.MaxLength(maxLength),输入内容的长度最大(包括)为指定长度。

RangeLength - 内容长度在指定范围内

ValuesPattern.RangeLength(minLength, maxLength),输入内容的长度在指定范围内。

MinValue - 最小值

ValuesPattern.MinValue(minValue),输入数值最小(包括)为指定数值。支持的数值类型:Int、Long、Float、Double;

MaxValue - 最大值

ValuesPattern.MaxValue(minValue),输入数值最大(包括)为指定数值。支持的数值类型:Int、Long、Float、Double;

RangeValue - 数值范围

ValuesPattern.RangeValue(minValue, maxValue),输入数值在(包括)指定数值范围内。支持的数值类型:Int、Long、Float、Double;

EqualsTo - 与指定内容相同

ValuesPattern.EqualsTo(...),输入内容与指定内容相同。EqualsTo有两个实现方式,一个是EqualsTo(Loader<String>),另一个是EqualsTo(fixedString);

  • EqualsTo(Loader<String>),延迟加载参数形式。当开始校验时,Loader的onLoadValue方法才会被执行,并要求返回一个用于匹配输入内容的字符串;

  • EqualsTo(fixedString),与指定固定字符串相同;

NotEqualsTo - 与指定内容不相同

方式与ValuesPattern.EqualsTo相同,判断方式取反。


设置校验失败提示消息

NextInputs内置的所有校验模式都自带提示消息,这些提示消息描述也比较“抽象”,很可能不符合你的业务需要。使用 .msgOnFail(String) 接口或者 .msg(String) 接口可以设置校验失败提示消息。当校验失败时,提示消息将通过MessageDisplay接口的具体实现类处理并显示出来。

这两个接口的作用是相同的,如果你觉得.msg(String)会导致你突然忘记这方法是干哈的,你可以使用.msgOnFail(String)方法来提醒自己。

使用 NextInputs.setMessageDisplay(MessageDisplay) 方法可以覆盖默认实现,使用你想要的校验失败提示方式。


自定义校验优先级

NextInputs是通过 Pattern.priority 的数值来决定优先级的,按数值升序。在非常有必要的情况下,可以使用 Pattern.setPriority(int) 方法来自定义校验模式的优先级。不建议自定义优先级,使用代码顺序即可。


空值

NextInputs对输入数据空值字符串的定义是:

input == null || input.length() == 0

License

Copyright 2015 Yoojia Chen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
 相关资料
  • 使用函数式组合的方式实现,可以配合 Form 组件实现表单校验功能。 Usage 只支持按需引入。 import validator from 'beeshell/dist/common/utils/validator' Examples Code 详细 Code const validate = validator.dispatch( validator.register('name',

  • 只要JSR-303实现(例如Hibernate验证器)在类路径上,就会自动启用Bean Validation 1.1支持的方法验证功能。 这允许bean方法在其参数和/或返回值上使用javax.validation约束进行注释。 具有这种带注释方法的目标类需要在类型级别使用@Validated注释进行注释,以便搜索内联约束注释的方法。 例如,以下服务触发第一个参数的验证,确保其大小在8到10之间:

  • 本文向大家介绍vue+VeeValidate 校验范围实例详解(部分校验,全部校验),包括了vue+VeeValidate 校验范围实例详解(部分校验,全部校验)的使用技巧和注意事项,需要的朋友参考一下 搜索很久,没有发现有关于vue+VeeValidate部分校验的。自己写一个。 主要是两个场景: 1. 校验范围内,所有的字段。 2. 校验全局所有字段。 主要方法: 1.validate(fie

  • 本篇主要介绍使用 JavaScript 进行表单验证。 表单验证并不是 JavaScript 提供的某种特性,而是结合各种特性达到的一种目的,是需求的产物。 所有线上产品的表单几乎都有验证,如注册时要求“用户名 6-16 位”,验证会由 JavaScript 来完成,通常为了安全性和准确性,服务端会再次做一遍验证。 1. 验证目标 表单用于收集信息,从 HTML 上讲,表单内容使用 form 标签

  • BetterValidate 校验规则 类校验 对于参数的校验,Lin 提供了类校验这种便捷,好用的方式,它会 对ctx.request.body(上下文请求体)、ctx.request.query(上下文请求query参数)、ctx.request.header(上下文请求头)、ctx.param(路由参数)这些参数进行统一校验 ,所以请保证你的参数名没有重复。 代码演示: class Regi

  • 1. 简介 埋点,是您对所关注事件的打点。埋点较验可以帮您查看埋点状态及埋点质量,您可看到每个事件埋点的数据量情况及相应埋点属性空值率,帮助您判断埋点质量,及时调整出错或不合理的埋点。 埋点较验可以帮您发现如下问题: 页面调整后,埋点出错,导致没有数据 埋点代码不正确导致未能回传数据 埋点设计不合理导致关联属性的空值率较高 2. 使用说明 在使用埋点较验前,您需要先在数据管理结合您的业务目标定义事

  • 我们可以给组件的 data 指定校验规则。如果传入的数据不符合规则,那么 san 会抛出异常。当组件给其他人使用时,这很有用。 指定校验规则,需要使用 DataTypes 进行声明: import san, {DataTypes} from 'san'; let MyComponent = san.defineComponent({ dataTypes: { name:

  • 校验区块: 验证区块签名是否正常 验证当前区块和前一个区块的时间差是否正确 如果Parent Hash非空,会查询父链中对应区块的信息,如果不存在,则为非法区块,丢弃; 存在,判断时间差是否在(4,6)分钟里,时间不对,丢弃; 时间正常,获取父区块对应的子链区块,如果子区块不在本链中,表示非法区块,丢弃; Child Hash也是一样的校验方式和Parent Hash一样。 处理区块中的交易