export function date(isMobile: boolean) { const currentDate = new Date(); const dateOptions: Intl.DateTimeFormatOptions = !isMobile ? { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', } : {}; const date = currentDate.toLocaleDateString('en-US', dateOptions); return date; } export function greet(list: any) { const currentTime = new Date(); const greet = Math.floor(currentTime.getHours() / 6); const easterEggChance = Math.floor(Math.random() * 100); let timeBased: any = []; let customGreetings: any = []; for (const l of list) { if (l.customGreeting === 0) { timeBased = timeBased.concat(l); } else { customGreetings = customGreetings.concat(l); } } if (easterEggChance > 10 || customGreetings.length === 0) { return timeBased[greet].message; } return customGreetings[Math.floor(Math.random() * customGreetings.length)].message; } export function validURL(str: any) { const pattern = new RegExp( '^(https?:\\/\\/)?' + // protocol '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string '(\\#[-a-z\\d_]*)?$', 'i', ); // fragment locator return !!pattern.test(str); } export function containsProtocol(str: any) { const pattern = /^(https?:\/\/).*/i; return !!pattern.test(str); }