shExpMatch di PAC memakai wildcard, bukan ekspresi reguler
Aturan proxy bisa terlihat benar tetapi tidak pernah cocok, karena shExpMatch dan ekspresi reguler JavaScript memakai bahasa pola yang berbeda.
Di PAC, shExpMatch memakai wildcard bergaya shell. Untuk subdomain example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Gunakan endpoint HTTP yang dipilih kebijakan pada nilai balik ini; daftar proxy HTTP menyediakan kandidat untuk rute publik yang diizinkan. Tanda bintang cocok dengan rangkaian karakter. Ini bukan operator pengulangan ekspresi reguler, jadi .*example.com yang mirip regex mengubah maknanya.
Sertakan nama induk yang tepat secara eksplisit bila termasuk dalam kebijakan:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Memakai *example.com sebagai gantinya juga akan menerima nama yang berakhir dengan huruf-huruf itu tanpa titik pemisah. Itu memperluas himpunan melewati batas domain yang dimaksud.
Dasar wildcard PAC yang portabel mencakup * dan ?; kelas karakter berbeda menurut implementasi. Regex JavaScript justru memakai test() serta aturan penjangkaran dan escape-nya sendiri.
Cocokkan masukan yang dimaksud. host adalah nama host, sedangkan url mencakup skema dan mungkin telah disanitasi. Aturan domain semestinya tidak bergantung secara kebetulan pada jalur yang tidak pernah disediakan browser.