antd _____ Как запретить ввод специальных символов, либо цифр в Form.Item ( Input )
const handleNameChange = (e: any) => {
const { value, name } = e.target
const isEmptyString = value === ''
const MAX_LENGTH = 17
const isValid =
(isStringContainsCharactersOnly(value) && value.length <= MAX_LENGTH) ||
isEmptyString
if (!isValid) return
}
Input
export const CHARACTERS_ONLY_REGEX = /^[a-zA-Z]+$/
сonst isStringContainsCharactersOnly = (value: string) => CHARACTERS_ONLY_REGEX.test(value)
<Form.Item
name="lastName"
label={t('lastName.label')}
rules={[
{ required: true }
// ({
// getFieldValue,
// setFieldsValue,
//
// ...s
// }): any => {
// const value = getFieldValue('lastName')
//
// const isEmptyString = value === ''
// const MAX_LENGTH = 17
//
// const isValid =
// (isStringContainsCharactersOnly(value) &&
// value.length <= MAX_LENGTH) ||
// isEmptyString
//
// setFieldsValue(2)
//
// console.log()
// // console.log('getFieldValue', getFieldValue)
// // console.log('setFieldsValue', setFieldsValue)
// console.log('s', s)
// }
]}
hasFeedback
>
<Input
placeholder={t('lastName.placeholder')}
onChange={handleNameChange}
// value={firstName}
/>
</Form.Item>
Цифры не должны попадать в интпут
Ответы (1 шт):
Автор решения: demark-pro
→ Ссылка
Через регулярное выражение text.match(/[^a-zA-Z ]/g)
const handleNameChange = (e: any) => {
const { value, name } = e.target
const isEmptyString = value === ''
const MAX_LENGTH = 17
const isValid = (isStringContainsCharactersOnly(value) && value.length <= MAX_LENGTH) || isEmptyString || text.match(/[^a-zA-Z ]/g)
if (!isValid) return
}
