You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
460 B
20 lines
460 B
"use strict"; |
|
|
|
module.exports = function escape(url, needQuotes) { |
|
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) || needQuotes) { |
|
return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"'; |
|
} |
|
|
|
return url; |
|
}; |