jd-opensource / drip-form

基于React和JSONSchema的动态表单解决方案
https://jd-opensource.github.io/drip-form/
MIT License
613 stars 73 forks source link

feat: ajv keyword添加gbkLength关键字 #129

Closed mengshang918 closed 2 years ago

mengshang918 commented 2 years ago

ajv默认的minLength、maxLength对于中文字符也认为是1

Motivation

feat: ajv keyword添加gbkLength关键字

ajv默认的minLength、maxLength对于中文字符也认为是1 gbkLength中文字符2,英文字符1

Have you read the Contributing Guidelines on pull requests?

Y

Test Plan

packages/drip-form-plugin-keywords/tests/index.test.ts

  test('gbkLength', () => {
    addKeywords(ajv)
    const validate = ajv.compile({
      type: 'string',
      gbkLength: {
        max: 4,
        min: 1,
      },
    })
    expect(validate('')).toEqual(false)
    expect(validate('a')).toEqual(true)
    expect(validate('ab')).toEqual(true)
    expect(validate('abcd')).toEqual(true)
    expect(validate('abcde')).toEqual(false)
    expect(validate('张')).toEqual(true)
    expect(validate('张三')).toEqual(true)
    expect(validate('张三李')).toEqual(false)
    expect(validate('张三a')).toEqual(false)
    expect(validate('张ab')).toEqual(true)
    expect(validate('1')).toEqual(true)
    expect(validate('1234')).toEqual(true)
    expect(validate('12345')).toEqual(false)
  })

Related PRs

N