shExpMatch ໃນ PAC ໃຊ້ໄວລ໌ກາດ ບໍ່ແມ່ນນິພົນປົກກະຕິ
ກົດຂອງພຣັອກຊີອາດເບິ່ງຄືຖືກຕ້ອງ ແຕ່ບໍ່ເຄີຍກົງກັນ ເພາະ shExpMatch ແລະ ນິພົນປົກກະຕິຂອງ JavaScript ໃຊ້ພາສາຮູບແບບຕ່າງກັນ.
ໃນ PAC, shExpMatch ໃຊ້ໄວລ໌ກາດແບບ shell. ສຳລັບໂດເມນຍ່ອຍຂອງ example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}ໃຊ້ຈຸດປາຍທາງ HTTP ທີ່ນະໂຍບາຍເລືອກໃນຄ່າສົ່ງກັບເຫຼົ່ານີ້; ລາຍການພຣັອກຊີ HTTP ໃຫ້ຜູ້ສະໝັກສຳລັບເສັ້ນທາງສາທາລະນະທີ່ອະນຸຍາດ. ດາວກົງກັບລຳດັບຕົວອັກສອນ. ມັນບໍ່ແມ່ນໂອເປີເຣເຕີຊ້ຳຂອງນິພົນປົກກະຕິ ດັ່ງນັ້ນ .*example.com ທີ່ຄື regex ຈຶ່ງປ່ຽນຄວາມໝາຍ.
ລວມຊື່ພໍ່ແມ່ທີ່ແນ່ນອນຢ່າງຊັດເຈນເມື່ອມັນເປັນສ່ວນໜຶ່ງຂອງນະໂຍບາຍ:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}ການໃຊ້ *example.com ແທນຈະຍອມຮັບຊື່ທີ່ລົງທ້າຍດ້ວຍຕົວອັກສອນເຫຼົ່ານັ້ນໂດຍບໍ່ມີຈຸດແຍກ. ນັ້ນຂະຫຍາຍຊຸດເກີນຂອບເຂດໂດເມນທີ່ຕັ້ງໃຈ.
ພື້ນຖານໄວລ໌ກາດ PAC ທີ່ຍ້າຍໄດ້ ລວມມີ * ແລະ ?; ຊັ້ນຕົວອັກສອນແຕກຕ່າງຕາມການຈັດຕັ້ງ. regex ຂອງ JavaScript ແທນຈະໃຊ້ test() ແລະກົດການຍຶດແລະການຫຼົບໜີຂອງມັນເອງ.
ຈັບຄູ່ກັບຂໍ້ມູນເຂົ້າທີ່ຕັ້ງໃຈ. host ແມ່ນຊື່ໂຮສ ສ່ວນ url ລວມມີ scheme ແລະອາດຖືກທຳຄວາມສະອາດແລ້ວ. ກົດຂອງໂດເມນບໍ່ຄວນອີງໃສ່ເສັ້ນທາງທີ່ບຣາວເຊີບໍ່ເຄີຍໃຫ້ໂດຍບັງເອີນ.