shExpMatch en PAC usa comodíns, non expresións regulares
Unha regra de proxy pode parecer correcta pero nunca coincidir, porque shExpMatch e as expresións regulares de JavaScript usan linguaxes de patrón diferentes.
En PAC, shExpMatch usa comodíns ao estilo da shell. Para os subdominios de example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Use os puntos finais HTTP seleccionados pola política nestes valores de retorno; a lista de proxies HTTP fornece candidatos para rutas públicas permitidas. O asterisco coincide cunha secuencia de caracteres. Non é un operador de repetición de expresións regulares, así que un .*example.com con aspecto de regex cambia o significado.
Inclúa o nome exacto do pai de forma explícita cando forma parte da política:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Usar *example.com no seu lugar tamén aceptaría nomes que rematen nesas letras sen un punto separador. Iso amplía o conxunto máis aló do límite de dominio previsto.
A base portátil de comodíns de PAC inclúe * e ?; as clases de caracteres varían segundo a implementación. Unha regex de JavaScript, en cambio, usa test() e as súas propias regras de ancoraxe e escapado.
Coincida coa entrada prevista. host é un nome de host, mentres que url inclúe un esquema e pode ter sido saneada. Unha regra de dominio non debería depender por accidente dunha ruta que o navegador nunca fornece.