PACin shExpMatch käyttää jokerimerkkejä, ei säännöllisiä lausekkeita
Välityspalvelinsääntö voi näyttää oikealta mutta ei koskaan täsmätä, koska shExpMatch ja JavaScriptin säännölliset lausekkeet käyttävät eri kuvauskieliä.
PACissa shExpMatch käyttää shell-tyylisiä jokerimerkkejä. Kohteen example.com aliverkkotunnuksille:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Käytä näissä paluuarvoissa käytännön valitsemia HTTP-päätepisteitä; HTTP-välityspalvelinluettelo tarjoaa ehdokkaita sallituille julkisille reiteille. Tähti vastaa merkkijonoa. Se ei ole säännöllisen lausekkeen toisto-operaattori, joten regexiltä näyttävä .*example.com muuttaa merkityksen.
Lisää tarkka ylätunnus nimenomaisesti, kun se kuuluu käytäntöön:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}*example.com sen sijaan hyväksyisi myös nimet, jotka päättyvät näihin kirjaimiin ilman erottavaa pistettä. Se laajentaa joukon aiotun verkkotunnusrajan ulkopuolelle.
Siirrettävä PAC-jokerimerkkipohja sisältää * ja ?; merkkiluokat vaihtelevat toteutuksen mukaan. JavaScriptin regex käyttää sen sijaan test() sekä omia ankkurointi- ja escapaussääntöjään.
Sovita aiottuun syötteeseen. host on isäntänimi, kun taas url sisältää skeeman ja on ehkä puhdistettu. Verkkotunnussäännön ei pitäisi vahingossa riippua polusta, jota selain ei koskaan tarjoa.