Mozilla ڪروميم سان گڏ هڪ عام ريگيولر ايڪسپريس انجڻ استعمال ڪرڻ لاءِ سوئچ ڪيو

SpiderMonkey JavaScript انجڻ فائر فاڪس ۾ استعمال ڪيو ويو منتقل ٿيل موجوده ڪوڊ جي بنياد تي باقاعده اظهار جي تازه ڪاري لاڳو ڪرڻ لاء Irregexp V8 JavaScript انجڻ مان استعمال ڪيو ويو برائوزرن ۾ Chromium پروجيڪٽ جي بنياد تي. RegExp جو نئون نفاذ Firefox 78 ۾ پيش ڪيو ويندو، 30 جون تي شيڊول ڪيو ويو، ۽ برائوزر تي باقاعده ايڪسپريسز سان لاڳاپيل سڀئي غائب ECMAScript عناصر آڻيندو.

اهو نوٽ ڪيو ويو آهي ته SpiderMonkey ۾ RegExp انجڻ هڪ الڳ جزو جي طور تي ٺهيل آهي، جيڪو ان کي نسبتا آزاد ۽ متبادل لاء موزون بڻائي ٿو بغير ڪوڊ جي بنيادي تبديلين جي ضرورت کان سواء. ماڊلرٽي ان کي 2014 ۾ ممڪن بڻايو YARR RegExp انجڻ کي بدلائڻ جو اصل ۾ فائر فاڪس ۾ استعمال ڪيو ويو V8 کان Irregexp انجڻ جي ڪانٽو سان. Irregexp V8 API سان ڳنڍيل آهي، ڳچيء جي ڪليڪٽر سان ڳنڍيل آهي، ۽ استعمال ڪري ٿو V8-مخصوص اسٽرنگ نمائندگي ۽ اعتراض ماڊل. 2014 ۾ اندروني SpiderMonkey API کي ترتيب ڏيڻ جي عمل ۾، Irregexp انجڻ جزوي طور تي ٻيهر لکيو ويو، ۽ اڀرندڙ تبديليون، جهڙوڪ '\u' پرچم، جتي ممڪن هجي منتقل ٿيل Mozilla پاران سنڀاليل ڪانٽو ۾.

بدقسمتي سان، هڪ هم وقت سازي واري ڪانٽو کي برقرار رکڻ ڏکيو آهي ۽ وسيلن جي گنجائش آهي. ECMAScript 2018 معيار ۾ باقاعده اظهار سان لاڳاپيل نون خصوصيتن جي آمد سان، Mozilla ڊولپرز ان باري ۾ سوچيو ته ڪيئن ان کي آسان بڻائي سگهجي ٿو Irregexp مان تبديلين کي منتقل ڪرڻ. ھڪڙي رستي جي طور تي، ھڪڙي لپڻ جو تصور پيش ڪيو ويو آھي، جيڪو استعمال ڪرڻ جي اجازت ڏئي ٿو تقريبا غير تبديل ٿيل Irregexp انجڻ SpiderMonkey ۾ (تبديلين کي صرف "#شامل" بلاڪ جي خودڪار متبادل ۾ گھٽايو ويو آھي).

Mozilla ڪروميم سان گڏ هڪ عام ريگيولر ايڪسپريس انجڻ استعمال ڪرڻ لاءِ سوئچ ڪيو

فريم ورڪ Irregexp کي ضروري V8-مخصوص صلاحيتن سان گڏ مهيا ڪري ٿو، بشمول ميموري مئنيجمينٽ ۽ ڪوڊ جنريشن افعال، گڏوگڏ اصلي ڊيٽا ڍانچي جيڪي ميموري مئنيجمينٽ انجڻ، ڪوڊ جنريٽر، ۽ SpiderMonkey جوڙجڪ استعمال ڪندي لاڳو ڪيا ويا آهن.

RegExp انجڻ کي اپڊيٽ ڪرڻ سان فائر فاڪس کي خصوصيتن جي مدد ڪرڻ جي اجازت ملندي جھڙوڪ نامزد ڪيل ڪيپچر، يونيڪوڊ ڪردار ڪلاس فرار، ڊاٽ آل پرچم، ۽ ڏسندڙ موڊ:

  • نالي وارا گروپ توھان کي اجازت ڏيو ته ھڪڙي اسٽرنگ جي حصن کي ڳنڍڻ جي ھڪڙي ريگيولر ايڪسپريشن سان ملندڙ مخصوص نالن سان ملان جي سيريل نمبرن جي بدران (مثال طور، بدران "/(\d{4})-(\d{2})-(\d{ 2})/" توهان وضاحت ڪري سگهو ٿا "/(؟ \d{4})-(؟ \d{2})-(؟ \d{2})/" ۽ سال تائين رسائي حاصل ڪريو نتيجي جي ذريعي نه [1]، پر result.groups.year ذريعي).
  • ڪلاس کان فرار ٿيڻ يونيڪوڊ اکر شامل ڪن ٿا تعميرات \p{...} ۽ \P{...}، مثال طور، \p{Number} سڀني ممڪن اکرن کي بيان ڪري ٿو انگن کي ظاهر ڪري ٿو (بشمول اکر جهڙوڪ ①)، \p{Alphabetic} - اکر (بشمول hieroglyphs )، \p{Math} — رياضياتي نشانيون، وغيره.
  • پرچم dotAll "." ماسڪ کي باهه ڏئي ٿو. لائن فيڊ ڪردارن سميت.
  • رستو پوئتي ڏس توهان کي باقاعده اظهار ۾ اهو طئي ڪرڻ جي اجازت ڏئي ٿو ته هڪ نمونو ٻئي کان اڳ آهي (مثال طور، ڊالر جي رقم کي پڪڙڻ کان سواء ڊالر جي نشاني).

پروجيڪٽ V8 ڊولپرز جي شموليت سان ڪيو ويو، جن، انهن جي حصي لاء، V8 تي Irregexp جي انحصار کي گهٽائڻ لاء ڪم ڪيو، ۽ ڪجهه خاصيتن کي منتقل ڪيو جيڪي SpiderMonkey جي بنياد تي "#ifdef" بلاڪ کي غير فعال ڪرڻ ۾ لاڳو نه ٿي سگھن ٿيون. تعاون هڪ ٻئي جي فائدي ۾ ثابت ٿيو. انهن جي حصي لاء، Mozilla ڊولپرز Irregexp ۾ تبديليون پيش ڪيون جيڪي ڪجهه ختم ڪن ٿيون عدم مطابقت جاوا اسڪرپٽ جي معيار جي ضرورتن سان ۽ بهتر ڪرڻ ڪوڊ معيار. انهي سان گڏ، فائر فاڪس جي فزنگ جاچ دوران، اڳ ۾ اڻڄاتل غلطيون Irregexp ڪوڊ ۾ جيڪي حادثن جو سبب بڻيا هئا انهن جي نشاندهي ڪئي وئي ۽ ختم ڪئي وئي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو