Konvencija PAC, ki jo uporabljajo glavni spletni brskalniki, vključno z Web Engine, je uporaba spremenjene sintakse regularnih izrazov. Do zdaj je pacmanager za ujemanje uporabljal običajne regularne izraze. Funkcijo shExpMatch spreminjamo tako, da uporablja ujemanje, ki je podobno kot v brskalnikih.

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

Ocenjevanje datotek PAC se v programski opremi RoomOS izvaja na dveh ločenih mestih:

  • Spletni motor za lasten promet.

  • Pacmanager za ves ostali promet HTTP: HttpFeedback, zagotavljanje storitev Webex, signalizacija klicev in tako naprej.

To funkcijo lahko uporablja datoteka PAC: shExpMatch(niz, vzorec)

Vrne true, če se niz ujema z vzorcem, v nasprotnem primeru pa false.

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

Znak pike "."

  • REGEX: . ustreza enemu znaku, ki ga lahko ponovite s kvantifikatorjem

  • BROWSER: . ustreza samo dobesednemu znaku pike

Zvezda, "*":

  • REGEX: * je kvantifikator nič ali več za elementom, vendar sam po sebi ne ustreza ničemur.

  • BROWSER: * ustreza nič ali več znakov

Vprašalni znak "?":

  • REGEX: ? je kvantifikator nič ali ena za elementom ali lahko spremeni kvantifikator *, da ne bo pohlepen, vendar se sam ne ujema z ničemer.

  • BROWSER: ? ustreza enemu znaku

Ali se mora ujemati celoten izraz:

  • REGEX: Brez uporabe začetnega ^ in končnega $ se vzorcu ni treba ujemati s celotnim nizom: Dovolj je, da STRING vsebuje podrezec, ki se ujema.

  • BROWSER: Vedno zahtevajte, da se STRING natančno ujema z VZORCEM

Primeri

Ujemati želimo vsa gostiteljska imena pod "provider.domain", ne pa tudi "otherprovider.domain", "provider.domain.tld" ali "providersdomain":

REGEX:

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

BROWSER:

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

Želimo, da se ujemajo naslovi "proxy1.domain", "proxy2.domain" in tako naprej, ne pa tudi "proxytest.domain":

REGEX:

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

BROWSER:

 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 .