ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² Firefox JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ SpiderMonkey
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ RegExp Π² SpiderMonkey ΠΎΡΠΎΡΠΌΠ»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ. ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π² 2014 Π³ΠΎΠ΄Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² Firefox RegExp-Π΄Π²ΠΈΠΆΠΎΠΊ YARR Π½Π° ΡΠΎΡΠΊ Π΄Π²ΠΈΠΆΠΊΠ° Irregexp ΠΈΠ· V8. Irregexp Π·Π°Π²ΡΠ·Π°Π½ Π½Π° API V8, ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ V8 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ API SpiderMonkey Π² 2014 Π³ΠΎΠ΄Ρ Π΄Π²ΠΈΠΆΠΎΠΊ Irregexp ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ, Π° ΠΏΠΎΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ»Π°Π³ β\uβ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈ Π΅Π³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ². Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ECMAScript 2018 Π½ΠΎΠ²ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Mozilla Π·Π°Π΄ΡΠΌΠ°Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Irregexp. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ
ΠΎΠ΄Π° Π±ΡΠ»Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² SpiderMonkey ΠΏΠΎΡΡΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Irregexp (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Π½Π΅ Π±Π»ΠΎΠΊΠΎΠ² Β«#includeΒ»).
ΠΠ±Π²ΡΠ·ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π»Ρ Irregexp Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ V8, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΡΠΊΡΡΡ SpiderMonkey.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ RegExp-Π΄Π²ΠΈΠΆΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π² Firefox ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°ΠΊΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π³ΡΡΠΏΠΏΡ (named captures), ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Unicode-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ»Π°Π³ dotAll ΠΈ ΡΠ΅ΠΆΠΈΠΌ Lookbehind:
-
Mga pinangalanang pangkat nagbibigay-daan sa iyong iugnay ang mga bahagi ng isang string na itinutugma ng isang regular na expression na may mga partikular na pangalan sa halip na mga serial number ng mga tugma (halimbawa, sa halip na "/(\d{4})-(\d{2})-(\d{ 2})/β maaari mong tukuyin ang β/( ?\d{4})-(?\d{2})-(?\d{2})/" at i-access ang taon hindi sa pamamagitan ng resulta[1], ngunit sa pamamagitan ng resulta.groups.year). -
Pagtakas sa mga klase Ang mga character na Unicode ay nagdaragdag ng mga konstruksyon \p{...} at \P{...}, halimbawa, ang \p{Number} ay tumutukoy sa lahat ng posibleng mga character na naglalarawan ng mga numero (kabilang ang mga character tulad ng β ), \p{Alphabetic} - mga titik (kabilang ang hieroglyph ), \p{Math} β mga simbolo ng matematika, atbp. - I-flag
dotLahat nagiging sanhi ng pag-apoy ng "." mask. kasama ang mga line feed na character. - rehimen
Tumingin sa likod nagbibigay-daan sa iyo na matukoy sa isang regular na expression na ang isang pattern ay nauuna sa isa pa (halimbawa, tumutugma sa isang halaga ng dolyar nang hindi kumukuha ng dollar sign).
ΠΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ½ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² V8, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΎΠ²Π΅Π»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Irregexp ΠΎΡ V8, ΠΈ Π²ΡΠ½Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° Π±Π°Π·Π΅ SpiderMonkey, Π² ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ Π±Π»ΠΎΠΊΠΈ Β«#ifdefΒ». Π‘ΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ²ΡΠ³ΠΎΠ΄Π½ΡΠΌ. Π‘ΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Mozilla ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² Irregexp ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΡΡΠ°Π½ΡΡΡΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅
Pinagmulan: opennet.ru