0.0.1 • Published 5 years ago

navy-scheme v0.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

npm.io


API

MethodsArgumentsReturn
rule[data, rule, [matchedText, misMatchedText]]this
judge-[{ status, text, rule },...]

Rules

ClassRuleDescriptionExampleMatch
PublicRequired[type]不能为空,type为空则不做类型检查,type可以为stringnumberRequired or Required string"String"
-Empty必须为空Emptynull
-True必须为真,且类型为布尔值Truetrue
-Flase必须为假,且类型为布尔值Flasefalse
Numbermore必须大于NNumber more: 1011
-less必须小于NNumber less: 109
-equal必须等于NNumber equal: 1010
-between必须介于min|max之间Number between: 5\|107
-phone必须为合法中国手机号Number phone13000000000
-int必须为整数Number int10
-float必须为浮点数Number float10.1
-multiple必须为N的倍数Number multiple: 1020
-divisor必须为N的因数Number divisor: 105
-positive必须为正数Number positive10
-negative必须为负数Number negative-10
Stringregexp必须匹配正则String regexp: [regExp]-
-includes必须包含字符串String includes: [string]-
-equal必须相等String equal: [string]-
-minLen字符串长度必须大于NString minLen: 5'asahip'
-maxLen字符串长度必须小于NString maxLen: 5'luke'
-len字符串长度必须等于NString len: 5'asahi'
-between字符串长度必须介于minLen|maxLen之间String between: 5\|7'asahip'
-number必须为纯数字String number'1024'
-uri必须为合法URIString uri'github.com'
-mail必须为合法邮箱地址String mail'example@mail.com'
-phone必须为合法中国手机号String phone'13000000000'
Dateafter必须在指定日期后Date after: [...]-
-before必须在指定日期前Date before: [...]-
-between必须介于指定日期之间Date between: [...]\|[...]-
at必须在指定日期Date at: [...]-
Array-继承上述所有规则--
Object-继承上述所有规则--

Grammar

 /**
  * 规则语法:
  * [数据类型][空格][规则名][:][规则参数]
  * [规则名]与[规则参数]之间用分号[:]连接
  * [规则]与[规则]之间用与运算符[,]连接
  * 所有关键字忽视大小写
  * 数组和对象支持多维嵌套
  * 
  * 数字: Number [rule]: [value]
  * 字符串: String [rule]: [numberValue], [rule]: [`stringValue`], [rule]: [`regexpValue`]
  * 日期: Date [rule]: [numberValue], [rule]: [`stringValue`]
  */

Example

/** 
 * 数组嵌套检查
 * 数组永远只会参考下标为0的规则
 */
let navy = new Navy()

navy
  .rule([
	[
        { age: 24 }
    ],
    [
        { age: 'Number more: 23' }
    ]
    [
        'matched message',
        'mismatched message'
    ]
  ])

let result = navy.judge()
/** 对象嵌套检查 */
let navy = new Navy()

navy
  .rule([
    {
        name: 'luke',
        age: 24,
        child: [
            { name: 'kim', age: 10 }
        ],
        contact: {
            phone: '13000000000',
            mail: 'example@mail.com'
        }
    },
    {
        name: 'Required string',
        age: 'Required number',
        child: [
            { name: 'Required String', age: 'Number less: 11' }
        ],
        contact: {
            phone: 'String phone',
            mail: 'String mail'
        }
    },
    [
        'matched message',
        'mismatched message'
    ]
  ])

let result = navy.judge()

License

MIT

0.0.1

5 years ago