shExpMatch v PAC používá zástupné znaky, ne regulární výrazy
Pravidlo proxy může vypadat správně, ale nikdy se neshodovat, protože shExpMatch a regulární výrazy JavaScriptu používají odlišné jazyky vzorů.
V PAC používá shExpMatch zástupné znaky ve stylu shellu. Pro subdomény example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}V těchto návratových hodnotách používejte koncové body HTTP vybrané zásadou; seznam HTTP proxy poskytuje kandidáty pro povolené veřejné trasy. Hvězdička odpovídá posloupnosti znaků. Není to operátor opakování regulárního výrazu, takže výraz připomínající regulární výraz .*example.com mění význam.
Pokud rodičovské jméno do zásady patří, uveďte je výslovně:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Použití *example.com namísto toho by také přijalo jména končící těmito písmeny bez oddělovací tečky. Tím se množina rozšiřuje za zamýšlenou hranici domény.
Přenosný základ zástupných znaků PAC zahrnuje * a ?; znakové třídy se liší podle implementace. Regulární výraz JavaScriptu místo toho používá test() a vlastní pravidla ukotvení a escapování.
Porovnávejte zamýšlený vstup. host je název hostitele, zatímco url obsahuje schéma a mohl být sanován. Pravidlo domény by nemělo neúmyslně záviset na cestě, kterou prohlížeč nikdy neposkytuje.