Si encuentras alguna parte que no comprendes puedes dejarlo en la sección de comentarios y haremos todo lo posible de ayudarte rápidamente.
Solución:
Hola, ahora mismo estoy resolviendo el mismo problema que tú y encontré una posible solución.
Validar número de teléfono con string que coincide con la expresión regular
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')
Puede buscar diferentes expresiones Regex y validarlas. He usado Regex de este artículo https://www.sitepoint.com/community/t/phone-number-regular-expression-validation/2204
>. Actualizar .
http://yup-phone.js.org/
he creado un yup-phone
módulo que utiliza google-libphonenumber
que proporciona comprobaciones de validación precisas y se puede instalar directamente desde github
npm install --save yup yup-phone
.
Comprobar uso
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
De Validador de reacción simple,
La expresión regular para la validación del número de teléfono es
/^(+?d0,4)?s?-?s?((?d3)?)s?-?s?((?d3)?)s?-?s?((?d4)?)?$/
Ejemplo
// 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 = /^(+?d0,4)?s?-?s?((?d3)?)s?-?s?((?d3)?)s?-?s?((?d4)?)?$/;
module.exports.rePhoneNumber = rePhoneNumber
yup.addMethod(yup.string, "phone", function()
return this.test("phone", "Phone number is not valid", value =>
rePhoneNumber.test(value)
);
);
Prueba esto, te puede ser útil.
móvil: si.string().coincidencias(/^[6-9]d9$/, mensaje: “Ingrese un número válido”., excludeEmptyString: false)