mirror of
https://github.com/gorhill/uBlock.git
synced 2024-11-07 03:12:33 +01:00
Simplify often-executed regex
This commit is contained in:
parent
c71b7c7a42
commit
1490fd606b
@ -31,8 +31,8 @@ import punycode from '../lib/punycode.js';
|
|||||||
// Originally:
|
// Originally:
|
||||||
// https://github.com/gorhill/uBlock/blob/8b5733a58d3acf9fb62815e14699c986bd1c2fdc/src/js/uritools.js
|
// https://github.com/gorhill/uBlock/blob/8b5733a58d3acf9fb62815e14699c986bd1c2fdc/src/js/uritools.js
|
||||||
|
|
||||||
const reCommonHostnameFromURL =
|
const reHostnameFromCommonURL =
|
||||||
/^https?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
|
/^https:\/\/[0-9a-z._-]+[0-9a-z]\//;
|
||||||
const reAuthorityFromURI =
|
const reAuthorityFromURI =
|
||||||
/^(?:[^:\/?#]+:)?(\/\/[^\/?#]+)/;
|
/^(?:[^:\/?#]+:)?(\/\/[^\/?#]+)/;
|
||||||
const reHostFromNakedAuthority =
|
const reHostFromNakedAuthority =
|
||||||
@ -75,20 +75,20 @@ function entityFromDomain(domain) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function hostnameFromURI(uri) {
|
function hostnameFromURI(uri) {
|
||||||
let matches = reCommonHostnameFromURL.exec(uri);
|
let match = reHostnameFromCommonURL.exec(uri);
|
||||||
if ( matches !== null ) { return matches[1]; }
|
if ( match !== null ) { return match[0].slice(8, -1); }
|
||||||
matches = reAuthorityFromURI.exec(uri);
|
match = reAuthorityFromURI.exec(uri);
|
||||||
if ( matches === null ) { return ''; }
|
if ( match === null ) { return ''; }
|
||||||
const authority = matches[1].slice(2);
|
const authority = match[1].slice(2);
|
||||||
if ( reHostFromNakedAuthority.test(authority) ) {
|
if ( reHostFromNakedAuthority.test(authority) ) {
|
||||||
return authority.toLowerCase();
|
return authority.toLowerCase();
|
||||||
}
|
}
|
||||||
matches = reHostFromAuthority.exec(authority);
|
match = reHostFromAuthority.exec(authority);
|
||||||
if ( matches === null ) {
|
if ( match === null ) {
|
||||||
matches = reIPv6FromAuthority.exec(authority);
|
match = reIPv6FromAuthority.exec(authority);
|
||||||
if ( matches === null ) { return ''; }
|
if ( match === null ) { return ''; }
|
||||||
}
|
}
|
||||||
let hostname = matches[1];
|
let hostname = match[1];
|
||||||
while ( hostname.endsWith('.') ) {
|
while ( hostname.endsWith('.') ) {
|
||||||
hostname = hostname.slice(0, -1);
|
hostname = hostname.slice(0, -1);
|
||||||
}
|
}
|
||||||
@ -104,8 +104,10 @@ function hostnameFromNetworkURL(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function originFromURI(uri) {
|
function originFromURI(uri) {
|
||||||
const matches = reOriginFromURI.exec(uri);
|
let match = reHostnameFromCommonURL.exec(uri);
|
||||||
return matches !== null ? matches[0].toLowerCase() : '';
|
if ( match !== null ) { return match[0].slice(0, -1); }
|
||||||
|
match = reOriginFromURI.exec(uri);
|
||||||
|
return match !== null ? match[0].toLowerCase() : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function isNetworkURI(uri) {
|
function isNetworkURI(uri) {
|
||||||
|
Loading…
Reference in New Issue
Block a user