shExpMatch në PAC përdor wildcards, jo shprehje të rregullta
Një rregull proxy mund të duket i saktë por nuk përputhet kurrë, sepse shExpMatch dhe shprehjet e rregullta të JavaScript përdorin gjuhë modelesh të ndryshme.
Në PAC, shExpMatch përdor wildcards të stilit shell. Për nëndomenet e example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Përdorni në këto vlera kthimi pikat fundore HTTP të zgjedhura nga politika; lista e proxy-ve HTTP ofron kandidatë për rrugët publike të lejuara. Ylli përputhet me një sekuencë karakteresh. Nuk është operator përsëritjeje i shprehjes së rregullt, prandaj një .*example.com që duket si regex ndryshon kuptimin.
Përfshini në mënyrë eksplicite emrin e saktë të prindit kur bën pjesë në politikë:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Përdorimi i *example.com në vend të tij do të pranonte edhe emra që mbarojnë me ato shkronja pa një pikë ndarëse. Kjo e zgjeron grupin përtej kufirit të synuar të domenit.
Baza e portueshme e wildcards të PAC përfshin * dhe ?; klasat e karaktereve ndryshojnë sipas implementimit. Një regex JavaScript përdor në vend të tij test() dhe rregullat e veta të ankorimit dhe escapimit.
Përputhni inputin e synuar. host është një emër hosti, ndërsa url përfshin një skemë dhe mund të jetë sanitarizuar. Një rregull domeni nuk duhet të varet aksidentalisht nga një shteg që shfletuesi nuk e ofron kurrë.