17 lines
		
	
	
		
			448 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			448 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = function escape(url) {
 | 
						|
    if (typeof url !== 'string') {
 | 
						|
        return url
 | 
						|
    }
 | 
						|
    // If url is already wrapped in quotes, remove them
 | 
						|
    if (/^['"].*['"]$/.test(url)) {
 | 
						|
        url = url.slice(1, -1);
 | 
						|
    }
 | 
						|
    // Should url be wrapped?
 | 
						|
    // See https://drafts.csswg.org/css-values-3/#urls
 | 
						|
    if (/["'() \t\n]/.test(url)) {
 | 
						|
        return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"'
 | 
						|
    }
 | 
						|
 | 
						|
    return url
 | 
						|
}
 |