PAC дахь shExpMatch тэмдэгт орлуулагч ашигладаг, регуляр илэрхийлэл биш
Прокси дүрэм зөв мэт харагдавч хэзээ ч тохирохгүй байж болно, учир нь shExpMatch ба JavaScript регуляр илэрхийллүүд өөр өөр загварын хэл ашигладаг.
PAC дээр shExpMatch нь shell хэв маягийн тэмдэгт орлуулагч ашигладаг. example.com-ийн дэд домэйнуудад:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Эдгээр буцаах утгад бодлогоор сонгосон HTTP төгсгөлийн цэгүүдийг ашиглана уу; HTTP прокси жагсаалт зөвшөөрөгдсөн нийтийн маршрутад нэр дэвшигчийг нийлүүлдэг. Од нь тэмдэгтүүдийн дараалалтай тохирно. Энэ нь регуляр илэрхийллийн давталтын оператор биш тул regex мэт харагдах .*example.com утгыг өөрчилдөг.
Бодлогод хамаарах бол яг эцэг нэрийг тодорхой оруулна уу:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Үүний оронд *example.com ашиглавал тусгаарлах цэггүйгээр тэдгээр үсгээр төгсөх нэрсийг хүлээн авна. Энэ нь олонлогийг зорьсон домэйны хилээс хэтэрүүлдэг.
Зөөврийн PAC тэмдэгт орлуулагчийн суурь нь * ба ?-г агуулна; тэмдэгтийн ангиуд хэрэгжүүлэлтээс хамаарч өөр өөр байна. JavaScript regex нь оронд нь test() болон өөрийн зангуу болон escape дүрмийг ашигладаг.
Зорьсон оролттой тохируулна уу. host нь хостын нэр, харин url нь схем агуулж, цэвэрлэгдсэн байж болно. Домэйны дүрэм хөтөч хэзээ ч өгдөггүй замд санамсаргүйгээр хамаарах ёсгүй.