freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../convert-html-entities/index.md

8.1 KiB

title localeTitle
Convert HTML Entities تحويل كيانات HTML

كيانات HTML & "<>"

:triangular_flag_on_post: تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج :busts_in_silhouette: واكتب الكود الخاص بك :pencil:

:checkered_flag: شرح المشكلة:

  • يجب عليك إنشاء برنامج يقوم بتحويل كيانات HTML من السلسلة إلى كيانات HTML الخاصة بها. لا يوجد سوى عدد قليل حتى تتمكن من استخدام أساليب مختلفة.

:speech_balloon: تلميح: 1

  • يمكنك استخدام تعبيرات عادية ومع ذلك لم أكن في هذه الحالة.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 2

  • ستستفيد من مخطط يحتوي على جميع كيانات html حتى تعرف أيها الكيانات المناسبة لوضعها.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 3

  • يجب فصل السلسلة والعمل مع كل حرف لتحويل الأحرف الصحيحة ثم الانضمام إلى كل شيء احتياطيًا.

حاول أن تحل المشكلة الآن

تنبيه المفسد!

علامة تحذير

الحل في المستقبل!

:beginner: الحل الأساسي للكود:

` function convertHTML(str) { // Split by character to avoid problems.

  var temp = str.split(''); 

  // Since we are only checking for a few HTML elements I used a switch 

  for (var i = 0; i < temp.length; i++) { 
    switch (temp[i]) { 
      case '<': 
        temp[i] = '&lt;'; 
        break; 
      case '&': 
        temp[i] = '&amp;'; 
        break; 
      case '>': 
        temp[i] = '&gt;'; 
        break; 
      case '"': 
        temp[i] = '&quot;'; 
        break; 
      case "'": 
        temp[i] = "&apos;"; 
        break; 
    } 
  } 

  temp = temp.join(''); 
  return temp; 
} 

//test here 
convertHTML("Dolce & Gabbana"); 

`

شرح الشفرة:

اشرح الحل هنا وأضف أي روابط ذات صلة

روابط ذات صلة

:rocket: تشغيل الكود

:sunflower: حل الشفرة المتوسطة:

`function convertHTML(str) { //Chaining of replace method with different arguments str = str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,"'"); return str; }

// test here convertHTML("Dolce & Gabbana"); `

:rocket: تشغيل الكود

شرح الشفرة:

اشرح الحل هنا وأضف أي روابط ذات صلة

روابط ذات صلة

:rotating_light: الحل المتقدم للكود:

` function convertHTML(str) { // Use Object Lookup to declare as many HTML entities as needed. const htmlEntities={ '&':'&', '<':'<', '>':'>', '"':'"', ''':"'" }; //Use map function to return a filtered str with all entities changed automatically. return str.split('').map(entity => htmlEntities[entity] || entity).join(''); }

// test here 
convertHTML("Dolce & Gabbana"); 

`

:rocket: تشغيل الكود

شرح الشفرة:

  • قم بإنشاء كائن لاستخدام وظيفة البحث للعثور على الأحرف بسهولة.
  • تقسيم السلسلة الأصلية حسب الأحرف واستخدام الخريطة للتحقق من كيان html الذي تم تغييره أو استخدام نفس الوحدة. بدلا من ذلك يمكنك استخدام Regex str.replace(/&|<|>|"|'/gi .
  • تتم إضافة الوظيفة التي تقوم بإرجاع الكيان المحول أو الأصل إذا لم يكن هناك تحويل. إذا قمت بالانتقال إلى مسار regex ، فعليك فقط إرجاع النتائج المتطابقة. return html[entity];
  • وأخيرًا نشارك جميع الشخصيات مرة أخرى.

لاحظ أنه إذا قمت بالانتقال إلى مسار regex فإنك لن تحتاج إلى الانضمام إلى أي شيء ، فقط تأكد من إرجاع العملية بأكملها أو حفظها إلى متغير ثم إعادتها.

روابط ذات صلة

:clipboard: ملاحظات للمساهمات:

  • :warning: لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
  • أضف شرحًا لحلك.
  • تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم . :traffic_light:
  • الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( :warning: لا تزيل أي أسماء مستخدمين حالية )

نرى :point_right: Wiki Challenge Solution Template كمرجع.