Untitled
unknown
plain_text
2 years ago
1.2 kB
7
Indexable
import { useFormik } from 'formik'; import * as Yup from 'yup'; const validationSchema = Yup.object().shape({ emailOrPhone: Yup.string() .test('valid-email-or-phone', 'Invalid email or phone number', (value) => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const phoneRegex = /^\d{10}$/; // assuming phone numbers are 10 digits long return emailRegex.test(value) || phoneRegex.test(value); }) .required('Email or phone number is required'), }); const MyForm = () => { const formik = useFormik({ initialValues: { emailOrPhone: '', }, validationSchema, onSubmit: (values) => { console.log(values); }, }); return ( <form onSubmit={formik.handleSubmit}> <label htmlFor="emailOrPhone">Email or Phone Number</label> <input type="text" id="emailOrPhone" name="emailOrPhone" value={formik.values.emailOrPhone} onChange={formik.handleChange} onBlur={formik.handleBlur} /> {formik.touched.emailOrPhone && formik.errors.emailOrPhone ? ( <div>{formik.errors.emailOrPhone}</div> ) : null} <button type="submit">Submit</button> </form> ); };
Editor is loading...