shExpMatch PAC kalba naudoja pakaitos simbolius, o ne reguliarias išraiškas
Tarpinio serverio taisyklė gali atrodyti teisinga, bet niekada nesutapti, nes shExpMatch ir JavaScript reguliariosios išraiškos naudoja skirtingas šablonų kalbas.
PAC kalba shExpMatch naudoja shell stiliaus pakaitos simbolius. example.com subdomenams:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Šiose grąžinamose reikšmėse naudokite politikos pasirinktus HTTP galinius taškus; HTTP tarpinių serverių sąrašas siūlo kandidatus leidžiamiems viešiems maršrutams. Žvaigždutė atitinka simbolių seką. Tai nėra reguliariosios išraiškos kartojimo operatorius, todėl į regex panašus .*example.com pakeičia prasmę.
Kai tikslus tėvinio domeno pavadinimas priklauso politikai, nurodykite jį aiškiai:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Naudojant *example.com būtų priimami ir pavadinimai, kurie baigiasi šiomis raidėmis be skiriamojo taško. Tai išplečia rinkinį už numatytos domeno ribos.
Perkeliamasis PAC pakaitos simbolių pagrindas apima * ir ?; simbolių klasės skiriasi priklausomai nuo realizacijos. JavaScript regex vietoj to naudoja test() ir savas susiejimo bei išėjimo taisykles.
Sutapkite su numatoma įvestimi. host yra mazgo vardas, o url apima schemą ir galėjo būti išvalytas. Domeno taisyklė neturėtų atsitiktinai priklausyti nuo kelio, kurio naršyklė niekada nepateikia.