8.1 KiB
title | localeTitle |
---|---|
Convert HTML Entities | تحويل كيانات HTML |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
- يجب عليك إنشاء برنامج يقوم بتحويل كيانات HTML من السلسلة إلى كيانات HTML الخاصة بها. لا يوجد سوى عدد قليل حتى تتمكن من استخدام أساليب مختلفة.
تلميح: 1
- يمكنك استخدام تعبيرات عادية ومع ذلك لم أكن في هذه الحالة.
حاول أن تحل المشكلة الآن
تلميح: 2
- ستستفيد من مخطط يحتوي على جميع كيانات html حتى تعرف أيها الكيانات المناسبة لوضعها.
حاول أن تحل المشكلة الآن
تلميح: 3
- يجب فصل السلسلة والعمل مع كل حرف لتحويل الأحرف الصحيحة ثم الانضمام إلى كل شيء احتياطيًا.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
` 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] = '<';
break;
case '&':
temp[i] = '&';
break;
case '>':
temp[i] = '>';
break;
case '"':
temp[i] = '"';
break;
case "'":
temp[i] = "'";
break;
}
}
temp = temp.join('');
return temp;
}
//test here
convertHTML("Dolce & Gabbana");
`
شرح الشفرة:
اشرح الحل هنا وأضف أي روابط ذات صلة
روابط ذات صلة
حل الشفرة المتوسطة:
`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"); `
شرح الشفرة:
اشرح الحل هنا وأضف أي روابط ذات صلة
روابط ذات صلة
الحل المتقدم للكود:
` 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");
`
شرح الشفرة:
- قم بإنشاء كائن لاستخدام وظيفة البحث للعثور على الأحرف بسهولة.
- تقسيم السلسلة الأصلية حسب الأحرف واستخدام الخريطة للتحقق من كيان html الذي تم تغييره أو استخدام نفس الوحدة. بدلا من ذلك يمكنك استخدام Regex
str.replace(/&|<|>|"|'/gi
. - تتم إضافة الوظيفة التي تقوم بإرجاع الكيان المحول أو الأصل إذا لم يكن هناك تحويل. إذا قمت بالانتقال إلى مسار regex ، فعليك فقط إرجاع النتائج المتطابقة.
return html[entity];
- وأخيرًا نشارك جميع الشخصيات مرة أخرى.
لاحظ أنه إذا قمت بالانتقال إلى مسار regex فإنك لن تحتاج إلى الانضمام إلى أي شيء ، فقط تأكد من إرجاع العملية بأكملها أو حفظها إلى متغير ثم إعادتها.
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.