shExpMatch در PAC از الگوهای عمومی استفاده میکند، نه عبارات باقاعده
یک قاعده پروکسی ممکن است درست به نظر برسد اما هرگز مطابقت نکند، زیرا shExpMatch و عبارات باقاعده JavaScript از زبانهای الگوی متفاوتی استفاده میکنند.
در PAC، shExpMatch از الگوهای عمومی به سبک پوسته استفاده میکند. برای زیردامنههای 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 شامل * و ? است؛ کلاسهای نویسه بسته به پیادهسازی متفاوتاند. عبارت باقاعده JavaScript بهجای آن از test() و قواعد لنگرگذاری و فرار خودش استفاده میکند.
با ورودی موردنظر مطابقت دهید. host یک نام میزبان است، در حالی که url شامل طرح است و ممکن است پاکسازی شده باشد. یک قاعده دامنه نباید بهطور تصادفی به مسیری وابسته باشد که مرورگر هرگز ارائه نمیدهد.