17 lines
		
	
	
		
			413 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			413 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
module.exports = url => {
 | 
						|
	if (typeof url !== 'string') {
 | 
						|
		throw new TypeError(`Expected a \`string\`, got \`${typeof url}\``);
 | 
						|
	}
 | 
						|
 | 
						|
	// Don't match Windows paths `c:\`
 | 
						|
	if (/^[a-zA-Z]:\\/.test(url)) {
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
 | 
						|
	// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1
 | 
						|
	// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3
 | 
						|
	return /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(url);
 | 
						|
};
 |