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 
}
→ Ссылка