123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import {
- MIN_LENGTH_FOR_NSN,
- VALID_DIGITS,
- VALID_PUNCTUATION,
- PLUS_CHARS
- } from '../constants.js'
- import createExtensionPattern from './extension/createExtensionPattern.js'
- const MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'
- export const VALID_PHONE_NUMBER =
- '[' + PLUS_CHARS + ']{0,1}' +
- '(?:' +
- '[' + VALID_PUNCTUATION + ']*' +
- '[' + VALID_DIGITS + ']' +
- '){3,}' +
- '[' +
- VALID_PUNCTUATION +
- VALID_DIGITS +
- ']*'
- const VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(
- '^' +
- '[' + PLUS_CHARS + ']{0,1}' +
- '(?:' +
- '[' + VALID_PUNCTUATION + ']*' +
- '[' + VALID_DIGITS + ']' +
- '){1,2}' +
- '$'
- , 'i')
- export const VALID_PHONE_NUMBER_WITH_EXTENSION =
- VALID_PHONE_NUMBER +
-
- '(?:' + createExtensionPattern() + ')?'
- const VALID_PHONE_NUMBER_PATTERN = new RegExp(
-
- '^' +
- MIN_LENGTH_PHONE_NUMBER_PATTERN +
- '$' +
- '|' +
-
- '^' +
- VALID_PHONE_NUMBER_WITH_EXTENSION +
- '$'
- , 'i')
- export default function isViablePhoneNumber(number) {
- return number.length >= MIN_LENGTH_FOR_NSN &&
- VALID_PHONE_NUMBER_PATTERN.test(number)
- }
- export function isViablePhoneNumberStart(number) {
- return VALID_PHONE_NUMBER_START_REG_EXP.test(number)
- }
|