shExpMatch v PAC používa zástupné znaky, nie regulárne výrazy
Pravidlo proxy môže vyzerať správne, ale nikdy sa nezhodovať, pretože shExpMatch a regulárne výrazy JavaScriptu používajú odlišné jazyky vzorov.
V PAC používa shExpMatch zástupné znaky v štýle shellu. Pre subdomény example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}V týchto návratových hodnotách používajte koncové body HTTP vybrané zásadou; zoznam HTTP proxy poskytuje kandidátov pre povolené verejné trasy. Hviezdička zodpovedá postupnosti znakov. Nie je to operátor opakovania regulárneho výrazu, takže výraz pripomínajúci regulárny výraz .*example.com mení význam.
Ak rodičovské meno patrí do zásady, uveďte ho výslovne:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Použitie *example.com namiesto toho by prijalo aj mená končiace týmito písmenami bez oddeľujúcej bodky. To rozširuje množinu za zamýšľanú hranicu domény.
Prenosný základ zástupných znakov PAC zahŕňa * a ?; znakové triedy sa líšia podľa implementácie. Regulárny výraz JavaScriptu namiesto toho používa test() a vlastné pravidlá ukotvenia a escapovania.
Zhodujte sa so zamýšľaným vstupom. host je názov hostiteľa, zatiaľ čo url obsahuje schému a mohol byť sanovaný. Pravidlo domény by nemalo náhodou závisieť od cesty, ktorú prehliadač nikdy neposkytuje.