码云账号不再使用社区账号进行二次身份验证的通知 详情
私信发送成功
Watch Star Fork

Kenny小狼 / validator-jsJavaScriptBSD-3-Clause

轻量,快捷,易扩展的前端的验证工具,无其他包依赖无样式,可以适合绝大部分使用情景,开发人员可根据项目环境自行组装反馈的错误信息给用户。
克隆/下载
README.md 2.18 KB

Validator-js

前端的验证工具,无其他包依赖无样式,可以适合任何环境,可根据项目环境自行组装提示信息反馈给用户。

兼容IE6以上版及目前流行的浏览器。

usage:

inputselect 元素上,添加 data-validator-options 属性,然后编写json的验证器配置信息,例如:

<input id="login_name" name="login_name"
    data-validator-options="required:true,validType:['loginName','length[6,32]']" >
  • required

    代表验证必填项。

  • validType

    验证的规则组合,string 的数组,注意格式!其中 length[6,32] 的意思是,使用 length 验证规则,并且传入参数为 632

更多验证规则可自行扩展,详细使用例子:参见

在线体验: http://jsrun.net/PYiKp

Todo List

  • INPUT/SELECT元素,支持maxLength和HTML5中一些基础验证属性,requiredpattern
  • 支持minmax,这两个HTML5中对于number和date的验证属性。
  • 精炼代码,替换ES6环境。
  • 支持AMD和CMD。

此项目中的经历

  1. 前端的ES6开发环境

    虽然可以通过babel来实现ES6的基础语法环境,但在转码的过程中,由于一些API,如Symbol不能使用,导致转码后的代码不能使用。另外前端环境上也用不了 Polyfill ,撇开前端js代码中能不能加上这个包(不过你有方法不妨告知,谢谢!),但为了使用一些ES6语法而加上这个庞然大物也是有点尴尬的。

    再加上需要兼容 IE6-8 甚至用forEach都比较困难,最后作出不得不扩展Array对象的决定。所以,用这个包的话,在IE6-8环境下会对Array扩展forEach方法,不喜的童鞋需要注意!

    总结,编写前端框架用babel的体验并不是太好,一边要原生API兼容性问题,一边还要留意转码后的兼容问题,顾虑反而增加了。还不如不用而专注浏览器对原生API的兼容问题好过。当然,也有部分原因是对babel转码特性不熟悉的关系,熟悉后可能后会好点,但换来语法环境值不值得就见仁见智了。

项目点评 (8)

你可以在登录后,对此项目发表评论

2_float_left_people 2_float_left_close