.concat(unwise).concat(autoEscape),
nonAuthChars = ['/', '@', '?', '#'].concat(delims),
hostnameMaxLen = 255,
- hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z-]{0,62}$/,
- hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z-]{0,62})(.*)$/,
+ hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z_-]{0,62}$/,
+ hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z_-]{0,62})(.*)$/,
// protocols that can allow "unsafe" and "unwise" chars.
unsafeProtocol = {
'javascript': true,
var newOut = [];
for (var i = 0; i < domainArray.length; ++i) {
var s = domainArray[i];
- newOut.push(s.match(/[^A-Za-z0-9-]/) ?
+ newOut.push(s.match(/[^A-Za-z0-9_-]/) ?
'xn--' + punycode.encode(s) : s);
}
out.hostname = newOut.join('.');
'host': 'xn--hgi.ws',
'hostname': 'xn--hgi.ws',
'pathname': '/➡'
+ },
+ 'http://bucket_name.s3.amazonaws.com/image.jpg': {
+ protocol: 'http:',
+ slashes: true,
+ host: 'bucket_name.s3.amazonaws.com',
+ hostname: 'bucket_name.s3.amazonaws.com',
+ pathname: '/image.jpg',
+ href: 'http://bucket_name.s3.amazonaws.com/image.jpg'
}
};
+
for (var u in parseTests) {
var actual = url.parse(u),
expected = parseTests[u];