12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.RFC3966_PREFIX_ = exports.RFC3966_PHONE_CONTEXT_ = exports.RFC3966_ISDN_SUBADDRESS_ = exports.PLUS_SIGN = void 0;
- exports["default"] = extractPhoneContext;
- exports.isPhoneContextValid = isPhoneContextValid;
- var _constants = require("../constants.js");
- var PLUS_SIGN = '+';
- exports.PLUS_SIGN = PLUS_SIGN;
- var RFC3966_VISUAL_SEPARATOR_ = '[\\-\\.\\(\\)]?';
- var RFC3966_PHONE_DIGIT_ = '(' + '[' + _constants.VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';
- var RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + _constants.VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';
- var RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g');
- var ALPHANUM_ = _constants.VALID_DIGITS;
- var RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\-)*[' + ALPHANUM_ + '])*';
- var VALID_ALPHA_ = 'a-zA-Z';
- var RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\-)*[' + ALPHANUM_ + '])*';
- var RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\.)*' + RFC3966_TOPLABEL_ + '\\.?$';
- var RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');
- var RFC3966_PREFIX_ = 'tel:';
- exports.RFC3966_PREFIX_ = RFC3966_PREFIX_;
- var RFC3966_PHONE_CONTEXT_ = ';phone-context=';
- exports.RFC3966_PHONE_CONTEXT_ = RFC3966_PHONE_CONTEXT_;
- var RFC3966_ISDN_SUBADDRESS_ = ';isub=';
- exports.RFC3966_ISDN_SUBADDRESS_ = RFC3966_ISDN_SUBADDRESS_;
- function extractPhoneContext(numberToExtractFrom) {
- var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_);
- if (indexOfPhoneContext < 0) {
- return null;
- }
- var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length;
- if (phoneContextStart >= numberToExtractFrom.length) {
- return '';
- }
- var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart);
- if (phoneContextEnd >= 0) {
- return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);
- } else {
- return numberToExtractFrom.substring(phoneContextStart);
- }
- }
- function isPhoneContextValid(phoneContext) {
- if (phoneContext === null) {
- return true;
- }
- if (phoneContext.length === 0) {
- return false;
- }
- return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);
- }
|