xtypejs, JavaScript的优雅,高效的数据验证

分享于 

5分钟阅读

GitHub

  繁體 雙語
Elegant, highly efficient data validation for JavaScript.
  • 源代码名称:xtypejs
  • 源代码网址:http://www.github.com/lucono/xtypejs
  • xtypejs源代码文档
  • xtypejs源代码下载
  • Git URL:
    git://www.github.com/lucono/xtypejs.git
    Git Clone代码到本地:
    git clone http://www.github.com/lucono/xtypejs
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/lucono/xtypejs
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    xtypejs Logo

    优雅,高效的JavaScript数据验证

    概述

    • 使用内置和用户定义数据验证伪类型,为JavaScript应用程序提供简明,高性能,可以读,数据和类型验证。
    • 通过统一最基本但通用的数据和类型验证,以单一,简洁,高度优化的操作,提高应用程序的效率和可读性。
    • 在小型和大型应用程序和库中使用按位操作。数据预处理和内存高效暂存。
    • 为 nodejs,requirejs和常规脚本标记准备好。
    • 网站- 收费 xtype.js.org

    从下面开始:

    
    
    
    
    function searchEmployees(value) {
    
    
     if (typeof value === 'string') {
    
    
     if (value.trim().length > 1) {
    
    
     return EmployeeDB.searchByName(value);
    
    
     } else if (value.trim().length === 1) {
    
    
     return EmployeeDB.searchByMiddleInitial(value);
    
    
     } else {
    
    
     return { error: 'Invalid search value supplied' };
    
    
     }
    
    
     } else if (typeof value === 'object' && value !== null) {
    
    
     if (Object.keys(value).length === 1) {
    
    
     return EmployeeDB.searchByFieldValuePair(value);
    
    
     } else if (Object.keys(value).length > 1) {
    
    
     return { error: 'Search by multiple fields not supported' };
    
    
     } else {
    
    
     return { error: 'Invalid search value supplied' };
    
    
     }
    
    
     } else if (typeof value === 'number') {
    
    
     if (!isNaN(value) && isFinite(value) && value > 0 && value % 1 === 0) {
    
    
     return EmployeeDB.searchByEmployeeNumber(value);
    
    
     } else {
    
    
     return { error: 'Invalid employee number supplied' };
    
    
     }
    
    
     } else if (typeof value === 'undefined' || value === null) {
    
    
     return { error: 'No search value supplied' };
    
    
     } else {
    
    
     return { error: 'Invalid search value supplied' };
    
    
     }
    
    
    }
    
    
    
    

    具有简洁,高性能,可以读,数据验证:

    
    
    
    
    function searchEmployees(value) {
    
    
     switch (xtype.which(value, 'str2+ str1 int+ obj1 obj2+ num nil')) {
    
    
     case 'str2+':
    
    
     return EmployeeDB.searchByName(value);
    
    
     case 'str1':
    
    
     return EmployeeDB.searchByMiddleInitial(value);
    
    
     case 'int+':
    
    
     return EmployeeDB.searchByEmployeeNumber(value);
    
    
     case 'obj1':
    
    
     return EmployeeDB.searchByFieldValuePair(value);
    
    
     case 'obj2+':
    
    
     return { error: 'Search by multiple fields not supported' };
    
    
     case 'num':
    
    
     return { error: 'Invalid employee number supplied' };
    
    
     case 'nil':
    
    
     return { error: 'No search value supplied' };
    
    
     default:
    
    
     return { error: 'Invalid search value supplied' };
    
    
     }
    
    
    }
    
    
    
    

    ,甚至添加你自己的自定义验证类型:

    
    
    
    
    xtype.ext.registerType('ssn', {
    
    
     validator: function(val) {
    
    
     return typeof val === 'string' && /^d{3}-d{2}-d{4}$/.test(val);
    
    
     }
    
    
    });
    
    
    
    function searchEmployees(value) {
    
    
     switch (xtype.which(value, 'positive_integer, ssn, multi_char_string')) {
    
    
     case 'positive_integer':
    
    
     return EmployeeDB.searchByEmployeeNumber(value);
    
    
     case 'ssn':
    
    
     return EmployeeDB.searchBySSN(value);
    
    
     case 'multi_char_string':
    
    
     return EmployeeDB.searchByName(value);
    
    
     default:
    
    
     return { error: 'Invalid search value supplied' };
    
    
     }
    
    
    }
    
    
    
    

    链接安装

    请参见这里的

    依赖项

    无。

    插件生成/测试

    请参见这里的

    许可证

    MIT许可证。

    网站

    访问网站使用指南,示例,API文档和安装。

    xtype.js.org


    相关文章