PAC da shExpMatch joker belgilardan foydalanadi, muntazam ifodalardan emas
Proksi qoidasi to'g'ri ko'rinishi mumkin, lekin hech qachon mos kelmasligi mumkin, chunki shExpMatch va JavaScript muntazam ifodalari turli naqsh tillaridan foydalanadi.
PAC da shExpMatch shell uslubidagi joker belgilardan foydalanadi. example.com subdomenlari uchun:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Ushbu qaytarish qiymatlarida siyosat tanlagan HTTP so'nggi nuqtalaridan foydalaning; HTTP proksi ro'yxati ruxsat etilgan ommaviy marshrutlar uchun nomzodlar beradi. Yulduzcha belgilar ketma-ketligiga mos keladi. Bu muntazam ifodaning takrorlash operatori emas, shuning uchun regexga o'xshash .*example.com ma'noni o'zgartiradi.
Agar aniq ota-domen nomi siyosatga kirsa, uni ochiq ko'rsating:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Buning o'rniga *example.com ishlatilsa, ajratuvchi nuqtasiz shu harflar bilan tugaydigan nomlar ham qabul qilinar edi. Bu to'plamni mo'ljallangan domen chegarasidan tashqariga kengaytiradi.
Ko'chiriladigan PAC joker belgi asosi * va ? ni o'z ichiga oladi; belgi sinflari amalga oshirishga qarab farq qiladi. JavaScript regex esa buning o'rniga test() va o'zining bog'lash va escape qoidalaridan foydalanadi.
Mo'ljallangan kiritishga moslang. host xost nomi, url esa sxemani o'z ichiga oladi va tozalangan bo'lishi mumkin. Domen qoidasi brauzer hech qachon taqdim etmaydigan yo'lga tasodifan bog'liq bo'lmasligi kerak.