@join-com/rc-phone-input
Version:
React component for entering telephone numbers
34 lines • 1.14 kB
JavaScript
export var getMinPhoneNumberLength = function (format) {
return (format.replace(/^\+[\.]+[- ]?(\([\.]+\))?/, '').match(/\./g) || []).length;
};
var DEFAULT_MIN_PHONE_NUMBER_LENGTH = 7;
var resolvePhoneNumber = function (country, input) {
if (input.length < 4) {
return;
}
var cleanNumber = input.replace(/[^\d+]/g, '');
if (!cleanNumber) {
return;
}
var minLength = country.format
? Math.min(getMinPhoneNumberLength(country.format), DEFAULT_MIN_PHONE_NUMBER_LENGTH)
: DEFAULT_MIN_PHONE_NUMBER_LENGTH;
if (cleanNumber.length < minLength) {
return;
}
if (input[0] === '+') {
return cleanNumber;
}
return "+" + country.dialCode + cleanNumber;
};
var isPhoneNumberValid = function (phoneNumber) {
return new RegExp(/^[+]*([-\s\./0-9]*)+$/).test("" + (phoneNumber || ''));
};
export var validateNumber = function (country, input) {
var phoneNumber = resolvePhoneNumber(country, input);
if (phoneNumber && isPhoneNumberValid(phoneNumber)) {
return phoneNumber;
}
return undefined;
};
//# sourceMappingURL=helpers.js.map