Подтвердить номер телефона с помощью Yup?
Я пытаюсь проверить номер телефона с помощью Yup:
phone: Yup.number()
.typeError("That doesn't look like a phone number")
.positive("A phone number can't start with a minus")
.integer("A phone number can't include a decimal point")
.min(8)
.required('A phone number is required'),
.min(8)
подтверждает, что число равно 8 или более. Так простое прохождение 8
пройдет. Как я могу сделать 8 символов, чтобы пройти 1000 0000
?
Ответы
Ответ 1
Привет, сейчас я решаю ту же проблему, что и вы, и я нашел возможное решение.
Подтвердите номер телефона со строкой, которая соответствует Regex
const phoneRegExp = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/
phoneNumber: Yup.string().matches(phoneRegExp, 'Phone number is not valid')
Вы можете искать различные выражения Regex и проверять его. Я использовал Regex из этой статьи https://www.sitepoint.com/community/t/phone-number-regular-expression-validation/2204
Ответ 2
Попробуйте, это может быть полезно для вас.
mobile: Yup.string(). совпадает (/^ [6-9]\d {9} $/, {сообщение: "Пожалуйста, введите правильный номер.", excludeEmptyString: false})
Ответ 3
Из Simple React Validator,
Регламент проверки номера телефона:
/^(\+?\d{0,4})?\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{4}\)?)?$/
Пример
// index.js
const yup = require('yup');
const { rePhoneNumber } = require('./yup-phone')
const schema = yup.string().phone()
const phone = '+911234567890';
console.log('Is Valid? ', rePhoneNumber.test(phone)); // Is Valid? true
schema.validateSync(phone);
// yup-phone.js
const yup = require('yup');
const rePhoneNumber = /^(\+?\d{0,4})?\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{4}\)?)?$/;
module.exports.rePhoneNumber = rePhoneNumber
yup.addMethod(yup.string, "phone", function() {
return this.test("phone", "Phone number is not valid", value =>
rePhoneNumber.test(value)
);
});
. Обновить. & Lt;
Я создал yup-phone
модуль, который использует google-libphonenumber
, который дает точные проверки правильности и может быть установлен непосредственно из github
npm install --save abhisekp/yup-phone
.
Проверьте использование
const Yup = require('yup');
require('yup-phone');
// validate any phone number (defaults to India for country)
const phoneSchema = Yup.string().phone().required();
phoneSchema.isValid('9876543210'); // → true