Konvencija PAC, ki jo uporabljajo glavni spletni brskalniki, vključno s spletnim mehanizmom, je uporaba spremenjene sintakse regularnega izraza. Do sedaj je pacmanager za ujemanje uporabljal navadne regularne izraze. Spreminjamo shExpMatch funkcijo za uporabo ujemanja, ki je podobno brskalnikom.

Ta sprememba pomeni, da bo RoomOS deloval z enakimi ujemanji datotek PAC kot drugi spletni odjemalci v omrežju. Datoteke PAC, posebej napisane za RoomOS, bo morda treba posodobiti, da bodo še naprej delovale, kot je predvideno.

Vrednotenje datoteke PAC se izvede na dveh ločenih mestih v programski opremi RoomOS:

  • Spletni motor za lasten promet.

  • Pacmanager za ves drug promet HTTP: HttpFeedback, zagotavljanje Webexa, signalizacija klicev itd.

Datoteka PAC lahko uporablja to funkcijo: shExpMatch(niz, vzorec)

Vrne true, če se niz ujema z vzorcem, drugače pa false.

Glavne razlike med obema konvencijama so navedene spodaj, pri čemer "REGEX" pomeni tradicionalne regularne izraze, "BRSKALNIK" pa konvencijo spletnega brskalnika.

Znak za piko, "."

  • REGEX: . ujema z enim znakom, ki se lahko ponovi s kvantifikatorjem

  • BRSKALNIK: . ujema se samo z dobesednim znakom pike

Zvezda, "*":

  • REGEX: * je kvantifikator nič ali več za postavko, vendar se sam po sebi ne ujema z ničemer

  • BRSKALNIK: * se ujema z nič ali več znaki

Vprašaj "?":

  • REGEX: ? je kvantifikator nič ali ena za elementom ali pa lahko kvantifikator * spremeni tako, da ni požrešen, vendar se sam ne ujema z ničemer

  • BRSKALNIK: ? ujema z enim znakom

Ali se mora celoten izraz ujemati:

  • REGEX: Brez uporabe začetnih ^ in končnih $ ni potrebno, da se VZOREC ujema s celotnim NIZOM: Dovolj je, da STRING vsebuje podniz, ki se ujema.

  • BRSKALNIK: Vedno zahtevajte, da se STRING natančno ujema s PATTERN

Primeri

Želimo ujemati vsa imena gostiteljev pod "provider.domain", ne pa tudi "otherprovider.domain", "provider.domain.tld" ali "providersdomain":

REGEX:


     shExpMatch(url, "^.*\\.provider\\.domain$") 
   

BRSKALNIK:


     shExpMatch(url, "*.provider.domain") 
   

Ujemati želimo "proxy1.domain", "proxy2.domain" in tako naprej, ne pa "proxytest.domain":

REGEX:


     shExpMatch(url, "^proxy.\\.domain$") 
   

BRSKALNIK:


     shExpMatch(url, "proxy?.domain") 
   

Drugi viri

Za več podrobnosti o formatu datoteke PAC glejte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .