freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-algorithm-scripting/title-case-a-sentence/index.md

8.9 KiB

title localeTitle
Title Case a Sentence العنوان حالة الجملة

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

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

علينا أن نعيد الجملة مع حالة اللقب. وهذا يعني أن الحرف الأول سيكون دائمًا بالحروف الكبيرة وأن يكون الباقي بأحرف صغيرة.

روابط ذات صلة

:speech_balloon: تلميح: 1

  • يجب أن تبدأ بتجزئة السلسلة إلى مجموعة من الكلمات.
  • انقسام الجملة.

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

:speech_balloon: تلميح: 2

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

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

:speech_balloon: تلميح: 3

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

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

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

علامة تحذير

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

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

`String.prototype.replaceAt = function(index, character) { return this.substr(0, index) + character + this.substr(index+character.length); };

function titleCase(str) { var newTitle = str.split(' '); var updatedTitle = []; for (var st in newTitle) { updatedTitle[st] = newTitle[st].toLowerCase().replaceAt(0, newTitle[st].charAt(0).toUpperCase()); } return updatedTitle.join(' '); } `

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

شرح الشفرة:

نقوم بتعديل وظيفة replaceAt باستخدام النموذج لتسهيل استخدام البرنامج.

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

روابط ذات صلة

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

`function titleCase(str) { var convertToArray = str.toLowerCase().split(" "); var result = convertToArray.map(function(val){ return val.replace(val.charAt(0), val.charAt(0).toUpperCase()); }); return result.join(" "); }

titleCase("I'm a little tea pot"); `

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

شرح الشفرة:

نحن نبذل سلسلة صغيرة بأكملها ومن ثم تحويلها إلى مجموعة. ثم نستخدم وظيفة الخريطة لاستبدال الحرف الصغير بالحروف الكبيرة. وأخيرًا ، نعيد السلسلة باستخدام طريقة join .

روابط ذات صلة

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

function titleCase(str) { return str.toLowerCase().replace(/(^|\s)\S/g, (L) => L.toUpperCase()); }

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

شرح الشفرة:

يعمل الحل أولاً بتخفيض جميع الأحرف في السلسلة ، ثم يؤدي إلى حرف أول حرف فقط لكل كلمة.

  • أحرف صغيرة السلسلة بأكملها باستخدام str.toLowerCase() .

  • استبدل كل كلمة "أول حرف بأحرف كبيرة باستخدام .replace .

  • ابحث عن الحرف في بداية كل كلمة ، أي مطابقة أي حرف بعد space أو مطابقة الحرف الأول من السلسلة بأكملها ، باستخدام النمط التالي.

  • شرح regex:

  • البحث عن كل أحرف غير بيضاء (\S )

  • في بداية السلسلة (^)

  • أو بعد أي حرف مسافة بيضاء (\s)

    • يبحث معدّل g لنمط كلمة آخر من هذا القبيل في السلسلة بأكملها ويستبدلها.

    • يعمل هذا الحل مع الرموز الوطنية والأحرف البارزة كما هو موضح في الأمثلة التالية
      international characters: 'бабушка курит трубку' // -> 'Бабушка Курит Трубку'
      accented characters: 'località àtilacol' // -> 'Località Àtilacol'

روابط ذات صلة

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

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

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