Form Validator Registry
@silver-formily/core re-exports the core registry APIs from @silver-formily/validator, providing a unified entry point for validation configuration in Formily scenarios.
All registrations are global and affect every Form instance in the current application.
setValidateLanguage
Description
Sets the current validation language.
Signature
interface setValidateLanguage {
(language: string): void
}Usage
import { setValidateLanguage } from '@silver-formily/core'
setValidateLanguage('en-US')
setValidateLanguage('zh-CN')registerValidateFormats
Description
Registers global format validators. Formats support string, RegExp, and function matchers.
For built-in formats, see the Built-in Formats documentation.
Signature
interface registerValidateFormats {
(formats: {
[key: string]: string | RegExp | ((value: any) => boolean)
}): void
}Usage
import { registerValidateFormats } from '@silver-formily/core'
registerValidateFormats({
integer: /^[+-]?\d+$/,
internalCode: value => typeof value === 'string' && value.startsWith('SF-'),
})After registration, use format in field validation rules:
field.setValidator({
format: 'internalCode',
})registerValidateLocale
Description
Registers global validation locale messages. The language key typically uses values like zh-CN or en-US.
For built-in locales, see the Built-in Locales documentation.
Signature
interface registerValidateLocale {
(locales: {
[language: string]: {
[key: string]: string | any
}
}): void
}Usage
import {
registerValidateLocale,
setValidateLanguage,
} from '@silver-formily/core'
registerValidateLocale({
'zh-CN': {
required: 'This field is required',
maxLength: 'Length must not exceed {{maxLength}}',
},
})
setValidateLanguage('zh-CN')registerValidateMessageTemplateEngine
Description
Registers a global template engine for custom rendering of validation messages.
Signature
interface registerValidateMessageTemplateEngine {
(template: (message: ValidatorFunctionResponse, context: any) => any): void
}Usage
import { registerValidateMessageTemplateEngine } from '@silver-formily/core'
registerValidateMessageTemplateEngine((message, context) => {
return String(message).replace(/\{\{(\w+)\}\}/g, (_, key) => context[key] ?? '')
})registerValidateRules
Description
Registers global validation rules, useful for reusable business rules.
For built-in rules, see the Built-in Rules documentation.
Signature
interface registerValidateRules {
(rules: {
[key: string]: (
value: any,
rule: IValidatorRules,
ctx: any,
render: (message: string, scope?: any) => string,
) => ValidatorFunctionResponse | Promise<ValidatorFunctionResponse> | null
}): void
}Usage
import { registerValidateRules } from '@silver-formily/core'
registerValidateRules({
usernameAvailable(value) {
if (!value)
return ''
return value === 'silver' ? '' : 'Username already taken'
},
})After registration, use on any field:
field.setValidator({
usernameAvailable: true,
})getValidateLocaleIOSCode
Description
Returns the closest matching language identifier from the current registry based on the input language value.
Signature
interface getValidateLocaleIOSCode {
(language: string): string | undefined
}Usage
import { getValidateLocaleIOSCode } from '@silver-formily/core'
getValidateLocaleIOSCode('en')
// ==> en