PAC இல் shExpMatch வைல்ட்கார்டுகளைப் பயன்படுத்துகிறது, ரெகுலர் எக்ஸ்பிரஷன்களை அல்ல
ஒரு ப்ராக்ஸி விதி சரியாகத் தோன்றினாலும் ஒருபோதும் பொருந்தாமல் போகலாம், ஏனெனில் shExpMatch மற்றும் JavaScript ரெகுலர் எக்ஸ்பிரஷன்கள் வெவ்வேறு பேட்டர்ன் மொழிகளைப் பயன்படுத்துகின்றன.
PAC இல், shExpMatch ஷெல்-பாணி வைல்ட்கார்டுகளைப் பயன்படுத்துகிறது. 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() மற்றும் அதன் சொந்த நங்கூரம் மற்றும் தப்பிக்கும் விதிகளைப் பயன்படுத்துகிறது.
நோக்கமிடப்பட்ட உள்ளீட்டுடன் பொருந்துங்கள். host ஒரு ஹோஸ்ட்பெயர், ஆனால் url ஒரு ஸ்கீமை உள்ளடக்கியது மற்றும் சுத்திகரிக்கப்பட்டிருக்கலாம். ஒரு டொமைன் விதி உலாவி ஒருபோதும் வழங்காத பாதையை எதேச்சையாகச் சார்ந்திருக்கக் கூடாது.