التعامل مع النصوص في لغة JavaScript


التعامل مع النصوص في لغة JavaScript

التعامل مع النصوص في لغة JavaScript

يا هلا بالجميع! اليوم بنشوف كيف نتعامل مع النصوص (Strings) في جافاسكريبت. الموضوع أساسي ومهم جداً لأي مبرمج.

1. كيف تسوي نص (String)؟

عندك ثلاث طرق رئيسية لتعريف النصوص:

  • باستخدام علامات التنصيص الفردية: 'نص هنا'
  • باستخدام علامات التنصيص المزدوجة: "نص هنا"
  • باستخدام Template Literals (باكتكس): نص هنا ${متغير} (هذي خطيرة وبتشوف ليش)
let name = 'أحمد';
    let greeting = "أهلاً وسهلاً!";
    let message = <code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">مرحباً بك يا ${name}</code>; // هنا تقدر تحط متغيرات مباشرة!
    console.log(message); // بيطبع: مرحباً بك يا أحمد

ملاحظة: الـ Template Literals (اللي بالباكتكس ) تعطيك مرونة أكبر، خصوصاً في دمج المتغيرات وكتابة نصوص على عدة أسطر بدون حركات معقدة.

2. دمج النصوص (Concatenation)

تبغى تلصق نص بنص ثاني؟ عندك طريقتين:

  • باستخدام علامة الجمع +
  • باستخدام الـ Template Literals (أسهل بكثير!)
let firstName = "محمد";
    let lastName = "الغامدي";

    // الطريقة الأولى: باستخدام +
    let fullName = firstName + " " + lastName;
    console.log(fullName); // بيطبع: محمد الغامدي

    // الطريقة الثانية: باستخدام Template Literals
    let fullGreeting = <code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">أهلاً بك يا ${firstName} ${lastName}!</code>;
    console.log(fullGreeting); // بيطبع: أهلاً بك يا محمد الغامدي!

3. طول النص (String Length)

تبغى تعرف كم حرف في النص؟ استخدم الخاصية .length.

let text = "جافاسكريبت قوية";
    console.log(text.length); // بيطبع: 14 (المسافات والأحرف العربية كلها تنحسب)

4. الوصول للأحرف (Accessing Characters)

تبغى حرف معين من النص؟ عندك طريقتين (تذكر أن العد يبدأ من صفر!):

  • باستخدام charAt()
  • باستخدام الأقواس المربعة [] (الأكثر استخداماً)
let word = "السلام";
    console.log(word.charAt(0)); // بيطبع: ا
    console.log(word[1]);      // بيطبع: ل
    console.log(word[word.length - 1]); // بيطبع آخر حرف: م

5. أشهر دوال النصوص (String Methods)

هذي أهم الدوال اللي بتستخدمها كثير مع النصوص:

تحويل حالة الأحرف: toUpperCase() و toLowerCase()

تحول النص كله لحروف كبيرة أو صغيرة. (طبعاً هذي مفيدة أكثر مع الإنجليزية).

let userName = "Ali";
    console.log(userName.toUpperCase()); // بيطبع: ALI
    let city = "RIYADH";
    console.log(city.toLowerCase()); // بيطبع: riyadh

البحث عن نص: indexOf() و lastIndexOf()

indexOf() تعطيك أول مكان يظهر فيه النص اللي تبحث عنه (أو -1 لو ما لقاه). lastIndexOf() تعطيك آخر مكان.

let sentence = "جافاسكريبت لغة برمجة رائعة، جافاسكريبت سهلة.";
    console.log(sentence.indexOf("جافاسكريبت"));      // بيطبع: 0
    console.log(sentence.lastIndexOf("جافاسكريبت"));     // بيطبع: 25
    console.log(sentence.indexOf("بايثون"));         // بيطبع: -1

اقتطاع جزء من النص: slice() و substring()

هذي الدالتين تاخذ جزء من النص. slice(start, end) و substring(start, end). الفرق بينهم بسيط، slice ممكن تاخذ أرقام سالبة عشان تبدأ العد من الأخير.

let fullText = "مرحباً بكم في عالم جافاسكريبت";
    console.log(fullText.slice(0, 5));     // بيطبع: مرحباً
    console.log(fullText.substring(15, 25)); // بيطبع: جافاسكريبت
    console.log(fullText.slice(-10));      // بيطبع آخر 10 أحرف: جافاسكريبت

استبدال نص: replace()

تستبدل جزء من النص بنص ثاني. انتبه: تستبدل أول ظهور فقط، إلا إذا استخدمت تعابير نمطية (Regular Expressions) مع العلم g (global).

let oldText = "أنا أحب التفاح، التفاح لذيذ.";
    let newText = oldText.replace("التفاح", "البرتقال");
    console.log(newText); // بيطبع: أنا أحب البرتقال، التفاح لذيذ.

    // عشان تستبدل كل الظهورات (بشكل متقدم شوي):
    let allReplaced = oldText.replace(/التفاح/g, "الموز");
    console.log(allReplaced); // بيطبع: أنا أحب الموز، الموز لذيذ.

إزالة المسافات الزائدة: trim()

تشيل المسافات البيضاء من بداية ونهاية النص.

let spacedText = "   أهلاً وسهلاً   ";
    console.log(spacedText.trim()); // بيطبع: أهلاً وسهلاً

تقسيم النص: split()

تحول النص إلى مصفوفة (Array) بناءً على فاصل معين.

let fruits = "تفاح,موز,برتقال";
    let fruitsArray = fruits.split(',');
    console.log(fruitsArray); // بيطبع: ["تفاح", "موز", "برتقال"]

    let sentenceToWords = "هذه جملة لتجربة التقسيم";
    let wordsArray = sentenceToWords.split(' ');
    console.log(wordsArray); // بيطبع: ["هذه", "جملة", "لتجربة", "التقسيم"]

البدء والانتهاء بنص معين: startsWith() و endsWith()

تشيك إذا النص يبدأ أو ينتهي بنص معين، وترجع true أو false.

let fileName = "تقرير_شهري.pdf";
    console.log(fileName.startsWith("تقرير")); // بيطبع: true
    console.log(fileName.endsWith(".pdf"));   // بيطبع: true
    console.log(fileName.startsWith("ملف"));  // بيطبع: false

6. الأحرف الخاصة (Escape Characters)

أحياناً تحتاج تحط علامة تنصيص داخل نص معرف بعلامة تنصيص نفسها. هنا تستخدم \.

let quote = "قال المعلم: \"الاجتهاد مفتاح النجاح\"";
    console.log(quote); // بيطبع: قال المعلم: "الاجتهاد مفتاح النجاح"

    // للسطر الجديد: \n
    let multiLine = "السطر الأول\nالسطر الثاني";
    console.log(multiLine);
    /* بيطبع:
    السطر الأول
    السطر الثاني
    */

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