@wldlab/yup-phone
Version:
Plugin for Yup who validate phone number with libphonenumber-js from Google
22 lines (15 loc) • 585 B
JavaScript
// vendors
import * as Yup from 'yup';
import { parsePhoneNumberFromString } from 'libphonenumber-js/max';
const regex = /(\+)?(1)?[- ]?\(?[1-9]\d\d\)?[- ]?\d\d\d[- ]?\d\d\d\d/;
function yupPhone(countryCode, message) {
return this.matches(regex, message).test('phone', message, (value) => {
if (!regex.test(value)) return false;
const phoneNumber = parsePhoneNumberFromString(value, countryCode);
if (phoneNumber === 'undefined') return false;
return phoneNumber.isValid();
});
}
export default (() => {
Yup.addMethod(Yup.string, 'phone', yupPhone);
})();