Mozilla Chromium உடன் பொதுவான வழக்கமான எக்ஸ்பிரஸ் எஞ்சினைப் பயன்படுத்துவதற்கு மாறியது

Firefox இல் பயன்படுத்தப்படும் SpiderMonkey JavaScript இன்ஜின் மாற்றப்பட்டது தற்போதைய குறியீட்டின் அடிப்படையில் வழக்கமான வெளிப்பாடுகளின் புதுப்பிக்கப்பட்ட செயலாக்கத்தைப் பயன்படுத்த Irregexp Chromium திட்டத்தின் அடிப்படையில் உலாவிகளில் பயன்படுத்தப்படும் V8 ஜாவாஸ்கிரிப்ட் இயந்திரத்திலிருந்து. RegExp இன் புதிய செயல்படுத்தல் ஜூன் 78 இல் திட்டமிடப்பட்ட Firefox 30 இல் வழங்கப்படும், மேலும் வழக்கமான வெளிப்பாடுகள் தொடர்பான அனைத்து விடுபட்ட ECMAScript கூறுகளையும் உலாவியில் கொண்டு வரும்.

SpiderMonkey இல் உள்ள RegExp இயந்திரம் ஒரு தனி அங்கமாக வடிவமைக்கப்பட்டுள்ளது என்பது குறிப்பிடத்தக்கது, இது குறியீட்டு தளத்தில் குறிப்பிடத்தக்க மாற்றங்களைச் செய்ய வேண்டிய அவசியமின்றி ஒப்பீட்டளவில் சுயாதீனமாகவும் மாற்றுவதற்கு ஏற்றதாகவும் உள்ளது. முதலில் பயர்பாக்ஸில் பயன்படுத்தப்பட்ட YARR RegExp இன்ஜினை V2014 இலிருந்து Irregexp இன்ஜினின் ஃபோர்க் மூலம் மாற்றுவது மாடுலாரிட்டி 8 இல் சாத்தியமாக்கியது. Irregexp ஆனது V8 API உடன் இணைக்கப்பட்டுள்ளது, குப்பை சேகரிப்பாளருடன் இணைக்கப்பட்டுள்ளது, மேலும் V8-குறிப்பிட்ட சரம் பிரதிநிதித்துவம் மற்றும் பொருள் மாதிரியைப் பயன்படுத்துகிறது. 2014 இல் SpiderMonkey இன் இன்டர்னல் ஏபிஐக்கு மாற்றியமைக்கும் செயல்பாட்டில், Irregexp இயந்திரம் ஓரளவு மீண்டும் எழுதப்பட்டது, மேலும் சாத்தியமான இடங்களில் '\u' கொடி போன்ற மாற்றங்கள் உருவாகி வருகின்றன. மாற்றப்பட்டது மொஸில்லாவால் பராமரிக்கப்படும் ஒரு முட்கரண்டிக்குள்.

துரதிர்ஷ்டவசமாக, ஒத்திசைக்கப்பட்ட முட்கரண்டியை பராமரிப்பது கடினம் மற்றும் வளமானது. ECMAScript 2018 தரநிலையில் வழக்கமான வெளிப்பாடுகள் தொடர்பான புதிய அம்சங்களின் வருகையுடன், Mozilla டெவலப்பர்கள் Iregexp இலிருந்து மாற்றங்களை நகர்த்துவதை எளிதாக்குவது பற்றி யோசித்தனர். ஒரு வழியாக, ஒரு மடக்கு கருத்து முன்மொழியப்பட்டது, இது SpiderMonkey இல் கிட்டத்தட்ட மாறாத Irregexp இன்ஜினைப் பயன்படுத்த அனுமதிக்கிறது (மாற்றங்கள் "#include" தொகுதிகளை தானாக மாற்றுவதற்கு மட்டுமே குறைக்கப்படுகின்றன).

Mozilla Chromium உடன் பொதுவான வழக்கமான எக்ஸ்பிரஸ் எஞ்சினைப் பயன்படுத்துவதற்கு மாறியது

நினைவக மேலாண்மை மற்றும் குறியீடு உருவாக்க செயல்பாடுகள் மற்றும் நினைவக மேலாண்மை இயந்திரங்கள், குறியீடு ஜெனரேட்டர்கள் மற்றும் SpiderMonkey கட்டமைப்புகளைப் பயன்படுத்தி செயல்படுத்தப்படும் நேட்டிவ் டேட்டா கட்டமைப்புகள் உட்பட தேவையான V8-குறிப்பிட்ட திறன்களை இந்த கட்டமைப்பு Iregexp க்கு வழங்குகிறது.

RegExp இன்ஜினைப் புதுப்பிப்பது, பெயரிடப்பட்ட பிடிப்புகள், யூனிகோட் எழுத்து வகுப்பு எஸ்கேப்பிங், dotAll கொடி மற்றும் Lookbehind பயன்முறை போன்ற அம்சங்களை ஆதரிக்க Firefox ஐ அனுமதிக்கும்:

  • பெயரிடப்பட்ட குழுக்கள் பொருத்தங்களின் வரிசை எண்களுக்குப் பதிலாக குறிப்பிட்ட பெயர்களுடன் வழக்கமான வெளிப்பாட்டுடன் பொருந்திய சரத்தின் பகுதிகளை இணைக்க உங்களை அனுமதிக்கிறது (எடுத்துக்காட்டாக, “/(\d{4})-(\d{2})-(\d{ 2})/” நீங்கள் குறிப்பிடலாம் “/( ? \d{4})-(? \d{2})-(? \d{2})/" மற்றும் வருடத்தை முடிவு மூலம் அணுகாமல்[1], result.groups.year மூலம் அணுகலாம்).
  • வகுப்புகளிலிருந்து தப்பித்தல் யூனிகோட் எழுத்துகள் \p{...} மற்றும் \P{...} கட்டுமானங்களைச் சேர்க்கின்றன, எடுத்துக்காட்டாக, \p{Number} எண்கள் (① போன்ற குறியீடுகள் உட்பட), \p{அகரவரிசை} - எழுத்துக்கள் (உட்பட) சித்தரிக்கும் அனைத்து சாத்தியமான எழுத்துக்களையும் வரையறுக்கிறது. ஹைரோகிளிஃப்ஸ் ), \p{கணிதம்} — கணித சின்னங்கள், முதலியன.
  • கொடியை அனைத்து புள்ளிகள் "" முகமூடியை சுடச் செய்கிறது. வரி ஊட்ட எழுத்துக்கள் உட்பட.
  • ஆட்சி பின்னால் பார் ஒரு முறை மற்றொன்றுக்கு முன்னதாக இருப்பதை வழக்கமான வெளிப்பாட்டில் தீர்மானிக்க உங்களை அனுமதிக்கிறது (உதாரணமாக, டாலர் அடையாளத்தைப் பிடிக்காமல் டாலர் தொகையைப் பொருத்துதல்).

V8 டெவலப்பர்களின் பங்கேற்புடன் இந்தத் திட்டம் மேற்கொள்ளப்பட்டது, அவர்கள் தங்கள் பங்கிற்கு V8 இல் Irregexp இன் சார்புநிலையைக் குறைக்கப் பணியாற்றினர், மேலும் SpiderMonkey ஐப் பயன்படுத்தி செயல்படுத்த முடியாத சில அம்சங்களை "#ifdef" தொகுதிகளை முடக்குவதற்கு நகர்த்தியுள்ளனர். ஒத்துழைப்பு பரஸ்பரம் நன்மை பயக்கும். தங்கள் பங்கிற்கு, Mozilla டெவலப்பர்கள் சிலவற்றை நீக்கும் Irregexp க்கு மாற்றங்களைச் சமர்ப்பித்தனர் முரண்பாடுகள் ஜாவாஸ்கிரிப்ட் தரநிலையின் தேவைகள் மற்றும் மேம்படுத்துகிறது குறியீடு தரம். மேலும், Firefox இன் குழப்பமான சோதனையின் போது, ​​Irregexp குறியீட்டில் முன்னர் கவனிக்கப்படாத பிழைகள், செயலிழப்புகளுக்கு வழிவகுத்தது மற்றும் நீக்கப்பட்டது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்