SpiderMonkey JavaScript injini esetyenziswa kwiFirefox
Kuphawulwe ukuba injini ye-RegExp kwi-SpiderMonkey yenzelwe njengecandelo elihlukeneyo, elenza ukuba lizimele kwaye lilungele ukutshintshwa ngaphandle kwesidingo sokwenza utshintsho olubalulekileyo kwisiseko sekhowudi. Ukumodareyitha kwenze ukuba kwenzeke ngo-2014 ukubuyisela injini ye-YARR RegExp eyayisetyenziswa ekuqaleni kwiFirefox ngefolokhwe yenjini ye-Irregexp esuka kwi-V8. I-Irregexp ibotshelelwe kwi-V8 API, ibotshelelwe kumqokeleli wenkunkuma, kwaye isebenzisa i-V8-specific string representation kunye nemodeli yento. Kwinkqubo yokuziqhelanisa neSpiderMonkey API ngo-2014, injini ye-Irregexp yabhalwa ngokuyinxenye, kunye notshintsho oluvelayo, olufana ne '\u' iflegi, apho kunokwenzeka.
Ngelishwa, ukugcina ifolokhwe elungelelanisiweyo kunzima kwaye kunzima kakhulu. Ngokufika kweempawu ezintsha ezinxulumene nokubonakaliswa rhoqo kumgangatho we-ECMAScript 2018, abaphuhlisi beMozilla bacinga malunga nendlela yokwenza kube lula ukufuduka utshintsho kwi-Irregexp. Njengendlela yokuphuma, ingcamango yokusonga yayicetywayo, evumela ukuba kusetyenziswe injini ye-Irregexp engatshintshiyo kwi-SpiderMonkey (utshintsho luncitshiswe kuphela kukutshintshwa okuzenzekelayo kweebhloko "#include").
Isakhelo sibonelela nge-Irregexp ngezakhono ezifunekayo ze-V8, kubandakanywa nolawulo lwememori kunye nemisebenzi yokuvelisa ikhowudi, kunye nezakhiwo zedatha zemveli eziphunyezwayo ngokusebenzisa iinjini zokulawula imemori, i-code generators, kunye nezakhiwo ze-SpiderMonkey.
Ukuhlaziya injini yeRegExp kuya kuvumela iFirefox ukuba ixhase izinto ezinje ngokubamba amagama, ukubaleka kodidi lwabalinganiswa be-Unicode, iflegi yedotAll, kunye nemowudi yokujonga ngasemva:
-
Amaqela anikwe amagama ikuvumela ukuba unxulumanise iindawo zomtya ezidityaniswe nentetho eqhelekileyo enamagama athile endaweni yamanani othotho lweematshisi (umzekelo, endaweni ye “/(\d{4})-(\d{2})-(\d{ 2})/” ungachaza “/( ? \d{4})-(? \d{2})-(? \d{2})/" kwaye ufikelele unyaka hayi ngesiphumo[1], kodwa nge result.groups.year). -
Iiklasi zokubaleka Oonobumba be-Unicode bongeza ulwakhiwo \p{...} kunye \P{...}, umzekelo, \p{Number} ichaza bonke abanokubakho abasebenzi ababonisa amanani (kubandakanywa noonobumba abanje ①), \p{Alfabhethi} - oonobumba (kuquka hieroglyphs ), \p{Math} — iisimboli zemathematika, njl. - Iflegi
dotAll ibangela ukuba "." imaski ivuthe umlilo. kuquka abalinganiswa feed line. - Indlela
Jonga ngasemva ikuvumela ukuba uqikelele kwintetho eqhelekileyo ukuba ipateni enye yandulela enye (umzekelo, ukuthelekisa isixa sedola ngaphandle kokubamba uphawu lwedola).
Le projekthi iqhutywe ngokuthatha inxaxheba kwabaphuhlisi be-V8, abathi, ngenxa yabo, basebenze ukunciphisa ukuxhomekeka kwe-Irregexp kwi-V8, kwaye bahambisa ezinye iimpawu ezingenakuphunyezwa ngokusebenzisa i-SpiderMonkey ukukhubaza "#ifdef" iibhloko. Intsebenziswano yanceda macala omabini. Kwicala labo, abaphuhlisi beMozilla bangenise utshintsho kwi-Irregexp esusa ezinye
umthombo: opennet.ru