scrivito
Version:
Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.
23 lines (17 loc) • 545 B
text/typescript
export function sanitizeUrl(rawUrl: string): string {
const url = rawUrl.trim();
if (URL.canParse(url)) return url;
if (url.match(/^[^/@]+@[^/@]+$/)) {
const mailto = `mailto:${url}`;
if (URL.canParse(mailto)) return mailto;
}
if (url.startsWith('/') || url.match(/^\w+:/)) return url;
if (url.includes('.')) {
const httpsUrl = `https://${url}`;
if (URL.canParse(httpsUrl)) {
const { hostname } = new URL(httpsUrl);
if (hostname && !hostname.includes('_')) return httpsUrl;
}
}
return url;
}