envoc-form
Version:
Envoc form components
38 lines (37 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.zipCode = exports.phoneNumber = void 0;
/** Normalizer for converting a string into a valid phone number. */
var phoneNumber = function (value) {
if (!value) {
return undefined;
}
var onlyNums = value.replace(/[^\d]/g, '');
if (onlyNums.length <= 3) {
return onlyNums;
}
if (onlyNums.length <= 7) {
return "".concat(onlyNums.slice(0, 3), "-").concat(onlyNums.slice(3));
}
if (onlyNums.length <= 10) {
return "".concat(onlyNums.slice(0, 3), "-").concat(onlyNums.slice(3, 6), "-").concat(onlyNums.slice(6, 10));
}
if (onlyNums.length <= 13) {
var countryCodeLength = onlyNums.length - 10;
return "+".concat(onlyNums.slice(0, countryCodeLength), " ").concat(onlyNums.slice(countryCodeLength, 3 + countryCodeLength), "-").concat(onlyNums.slice(3 + countryCodeLength, 6 + countryCodeLength), "-").concat(onlyNums.slice(6 + countryCodeLength, onlyNums.length));
}
return onlyNums;
};
exports.phoneNumber = phoneNumber;
/** Normalizer for converting a string into a valid zip code. Allows for XXXXX and XXXXX-XXXX format. */
var zipCode = function (value) {
if (!value) {
return undefined;
}
var onlyNums = value.replace(/[^\d]/g, '');
if (onlyNums.length > 5) {
return onlyNums.substring(0, 5) + '-' + onlyNums.substring(5, 9);
}
return onlyNums;
};
exports.zipCode = zipCode;