shExpMatch u PAC-u koristi zamjenske znakove, a ne regularne izraze
Pravilo proxyja može izgledati ispravno, ali nikada se ne poklopiti jer shExpMatch i JavaScript regularni izrazi koriste različite jezike uzoraka.
U PAC-u shExpMatch koristi zamjenske znakove u stilu ljuske. Za poddomene od example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Koristite HTTP krajnje točke koje je odabrala politika u ovim povratnim vrijednostima; lista HTTP proxyja nudi kandidate za dopuštene javne rute. Zvjezdica odgovara nizu znakova. Ona nije operator ponavljanja regularnog izraza, pa regexoliki .*example.com mijenja značenje.
Uključite tačan naziv roditelja izričito kada pripada politici:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Korištenje *example.com umjesto toga prihvatilo bi i nazive koji završavaju tim slovima bez razdvajajuće točke. To širi skup izvan predviđene granice domene.
Prenosiva osnova zamjenskih znakova PAC-a uključuje * i ?; klase znakova variraju po implementaciji. JavaScript regex umjesto toga koristi test() i vlastita pravila sidrenja i izbjegavanja.
Poklopite predviđeni unos. host je naziv hosta, dok url uključuje shemu i možda je sanitiziran. Pravilo domene ne smije slučajno zavisiti od putanje koju preglednik nikada ne dostavlja.