طرق العمل مع سلاسل جافا سكريبت. مهام حول وظائف العمل مع السلاسل في JavaScript

طرق العمل مع سلاسل جافا سكريبت.  مهام حول وظائف العمل مع السلاسل في JavaScript
طرق العمل مع سلاسل جافا سكريبت. مهام حول وظائف العمل مع السلاسل في JavaScript

عندما أكتب بلغة جافا سكريبت، غالبًا ما أحتاج إلى الرجوع إليها محركات البحث، من أجل توضيح بناء جملة الأساليب (والترتيب وتعريف الوسائط) التي تعمل مع السلاسل.

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

تحويل إلى سلسلة

يمكنك تحويل رقم أو منطقي أو كائن إلى سلسلة.

فار myNumber = 24؛ // 24 var myString = myNumber.toString(); // "24"

يمكنك أيضًا إجراء معالجة مشابهة باستخدام الدالة string().

فار myNumber = 24؛ // 24 var myString = String(myNumber); // "24"

يقول نيكولاس زاكاس: "إذا لم تكن متأكدًا من القيمة (فارغة أو غير محددة)، فاستخدم الدالة String()، لأنها تُرجع سلسلة بغض النظر عن نوع المتغير."

غير معرفيعني أنه لم يتم تعيين أي قيمة للمتغير، أ باطل- ما كلف به قيمة فارغة(يمكننا القول أن القيمة null محددة ككائن فارغ).

تقسيم سلسلة إلى سلاسل فرعية

لتقسيم سلسلة إلى مصفوفة من السلاسل الفرعية، يمكنك استخدام التابع Split()‎:

var myString = "قادم، منفصل، عند، الفواصل"؛ var substringArray = myString.split("،"); // ["قادم"، "متباعد"، "at"، "the"، "فواصل"] var arrayLimited = myString.split("،, 3); // ["قادم"، "متباعد"، "في"]

على النحو التالي من الخط الأخير، تحدد قيمة الوسيطة الاختيارية الثانية عدد عناصر المصفوفة التي تم إرجاعها.

الحصول على طول السلسلة

باستخدام الخاصية length يمكنك العثور على عدد أحرف Unicode في السلسلة:

var myString = "أنت شخصية مميزة."; var stringLength = myString.length; // 25

تحديد سلسلة فرعية في سلسلة

هناك طريقتان لتحقيق خطتك:

استخدم مؤشر () :

var stringOne = "جوني والدو هاريسون والدو"; var WheresWaldo = stringOne.indexOf("Waldo"); // 7

تبحث طريقة IndexOf() عن سلسلة فرعية (الوسيطة الأولى التي تم تمريرها) في سلسلة (من بداية السلسلة) وتقوم بإرجاع موضع الحرف الأول الذي بدأت منه السلسلة الفرعية في الظهور في السلسلة.

استخدم lastIndexOf() :

var stringOne = "جوني والدو هاريسون والدو"; var WheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

تقوم الطريقة lastIndexOf() بكل شيء بنفس الطريقة، باستثناء أنها تبحث عن السلسلة الفرعية الأخيرة التي تحدث في السلسلة.

إذا لم يتم العثور على السلسلة الفرعية، ترجع كلا الطريقتين -1. تحدد الوسيطة الاختيارية الثانية الموضع في السلسلة حيث تريد بدء البحث. لذلك، إذا كانت الوسيطة الثانية لطريقة IndexOf() هي 5، فسيبدأ البحث من الحرف الخامس، وسيتم تجاهل الأحرف 0-4. بالنسبة إلى lastIndexOf() ، أيضًا إذا كانت الوسيطة الثانية هي 5، فسيبدأ البحث في الاتجاه المعاكس، مع تجاهل الأحرف السادسة وما فوق.

كيفية استبدال جزء من السلسلة

لاستبدال جزء (أو حتى كل) سلسلة، استخدم طريقة الاستبدال ().

Var slugger = "جوش هاميلتون"; var BetterSlugger = slugger.replace("h Hamilton"، "e Bautista"); console.log(betterSlugger); // "خوسيه باوتيستا"

تحتوي الوسيطة الأولى على جزء السلسلة الفرعية الذي سيتم استبداله؛ الوسيطة الثانية هي السلسلة التي ستحل محل السلسلة الفرعية التي سيتم استبدالها. سيتم استبدال المثيل الأول للسلسلة الفرعية فقط.

لاستبدال كافة تكرارات سلسلة فرعية، استخدم تعبيرًا عاديًا بالعلامة "g".

var myString = "إنها تبيع قذائف السيارات على شاطئ السيارات"; var newString = myString.replace(/automotive/g, "sea"); console.log(newString); // "تبيع الأصداف البحرية على شاطئ البحر"

قد تتضمن الوسيطة الثانية السلسلة الفرعية أو الوظيفة المراد استبدالها.

ابحث عن شخصية في موضع معين

لمعرفة الحرف الموجود في موضع معين، يمكنك استخدام التابع charAt() :

var myString = "طيور الريش"; varwhatsAtSeven = myString.charAt(7); // "F"

كما هو الحال غالبًا في جافا سكريبت، يبدأ الموضع الأول من 0، وليس 1.

بدلاً من ذلك، يمكنك استخدام طريقة charCodeAt()، ولكن بدلاً من الحرف نفسه، ستتلقى الكود الخاص به.

var myString = "طيور الريش"; varwhatsAtSeven = myString.charCodeAt(7); // "102" varwhatsAtEleven = myString.charCodeAt(11); // "70"

لاحظ أن رمز الحرف الكبير (الموضع 11) يختلف عن رمز الحرف نفسه في الحالة الصغيرة (الموضع 7).

تسلسل السلسلة في جافا سكريبت

بالنسبة للجزء الأكبر، سوف تستخدم عامل التشغيل (+) لتسلسل السلاسل. ولكن يمكنك أيضًا ربط السلاسل باستخدام طريقة concat().

var stringOne = "كرة قدم نيب الثانوية"; var stringTwo = stringOne.concat("rules."); // "قواعد كرة القدم العليا في نيب"

يمكن تمرير سلاسل متعددة إلى concat()، وستظهر السلسلة الناتجة بالترتيب الذي تمت إضافتها به إلى طريقة concat().

var stringOne = "Knibb"; var stringTwo = "عالي"; var stringThree = "كرة القدم"; var stringFour = "rules."; var FinalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "قواعد كرة القدم العالية في نيب."

جزء من سلسلة (استخراج سلسلة فرعية في جافا سكريبت)

هناك ثلاثة طرق مختلفةيخلق خط جديد"سحب" جزء من السلسلة الفرعية من سلسلة موجودة.

باستخدام شريحة ():

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "فغيج"

باستخدام السلسلة الفرعية () :

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "فغيج"

بالنسبة لكلا الطريقتين (slice() وsubstring())، فإن الوسيطة الأولى هي موضع الحرف الذي تبدأ عنده السلسلة الفرعية (العد من 0)، والوسيطة الثانية هي موضع الحرف الذي تنتهي عنده السلسلة الفرعية، والوسيطة لم يتم تضمين الحرف المعين في الوسيطة الثانية في السلسلة الفرعية التي تم إرجاعها.

باستخدام substr() :

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "فغيجكلمنو"

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

تحويل سلسلة إلى حالة صغيرة أو كبيرة في جافا سكريبت

هناك أربع طرق لإجراء التحويلات اللازمة. اثنان لتحويل أحرف السلسلة إلى أحرف كبيرة.

var stringOne = "تكلم، لا أستطيع سماعك."; var stringTwo = stringOne.toLocaleUpperCase(); // "تحدث، لا أستطيع سماعك" var stringThree = stringOne.toUpperCase(); // "تحدث، لا أستطيع سماعك"

واثنين لتحويل السلسلة إلى أحرف صغيرة:

var stringOne = "ليس عليك الصراخ"؛ var stringTwo = stringOne.toLocaleLowerCase(); // "ليس عليك الصراخ" var stringThree = stringOne.toLowerCase(); // "ليس عليك الصراخ"

بشكل عام، لا يوجد فرق بين الطريقة المحلية والطريقة غير المحلية، ومع ذلك، "بالنسبة لبعض اللغات، مثل التركية، التي لا تتبع حالة أحرفها حالة Unicode المحددة، قد تكون عواقب استخدام طريقة غير محلية كن مختلفا." لذلك، اتبع القاعدة التالية: "إذا كنت لا تعرف اللغة التي سيتم تشغيل التعليمات البرمجية بها، فمن الآمن استخدام الأساليب المحلية."

مطابقة الأنماط في جافا سكريبت

يمكنك التحقق من وجود نمط في سلسلة باستخدام طريقتين.

يتم استدعاء الأسلوب match() على كائن سلسلة، وتمرير تعبير عادي كوسيطة إلى الأسلوب match().

var myString = "ما كمية الخشب التي يمكن لظرف الخشب أن يقطعها"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["خشب"] var PatternLocation = myResult.index; // 9 var originalString = myResult.input // "ما هي كمية الخشب التي يمكن أن يقوم بها ظرف الخشب"

ويتم استدعاء الأسلوب exec() على كائن RegExp، وتمرير السلسلة كوسيطة:

var myString = "ما كمية الخشب التي يمكن لظرف الخشب أن يقطعها"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["تشاك"] var PatternLocation = myResult.index; // 27 var originalString = myResult.input // "ما هي كمية الخشب التي يمكن أن يقوم بها ظرف الخشب"

تقوم كلتا الطريقتين بإرجاع التواجد الأول الذي يطابق. إذا لم يتم العثور على أي تطابقات، فسيتم إرجاع NULL. إذا كان التعبير العادي يحتوي على العلامة "g"، فستكون النتيجة عبارة عن مصفوفة تحتوي على جميع التطابقات.

يمكنك أيضًا استخدام طريقة البحث () التي تأخذ التعبير العادي كوسيطة وتعيد موضع البداية للنمط المطابق الأول.

var myString = "افترض"; var PatternLocation = myString.search(/ume/); // 3

إذا لم يتم العثور على أي تطابقات، فسوف ترجع الطريقة -1.

مقارنة سلسلتين للفرز اللاحق

لمقارنة سلسلتين بناءً على ترتيب فرز الإعدادات المحلية، يمكنك استخدام الأسلوب localeCompare . يُرجع الأسلوب localeCompare ثلاث قيم محتملة.

MyString = "دجاج"; var myStringTwo = "بيضة"; var whoCameFirst = myString.localeCompare(myStringTwo); // -1 (باستثناء Chrome، الذي يُرجع -2) whoCameFirst = myString.localeCompare("chicken"); // 0 whoCameFirst = myString.localeCompare("apple"); // 1 (يرجع Chrome 2)

كما هو موضح أعلاه، سيتم إرجاع قيمة سالبة إذا تم فرز السلسلة الأصلية قبل وسيطة السلسلة؛ وإذا تم فرز وسيطة السلسلة بعد السلسلة الأصلية، فسيتم إرجاع +1. إذا تم إرجاع قيمة فارغة، فإن السلسلتين متكافئتان.

مرحبًا! سننظر في هذا الدرس في كيفية إنشاء سلسلة ووظائف للعمل مع السلاسل في JavaScript. من حيث المبدأ، في جافا سكريبت، أي متغير نص هو سلسلة، لأن جافا سكريبت ليست لغة برمجة مكتوبة بقوة (اقرأ عن أنواع البيانات). وأيضًا للعمل مع السلاسل، يتم استخدام فئة السلسلة:

فار name1 = "تومي";

لذا استخدم منشئ السلسلة:

var name1 = new String("تومي");

الطريقة الأولى تستخدم بشكل رئيسي، ربما لأنها أقصر.

تحتوي فئة String للعمل مع السلاسل على مجموعة كبيرة إلى حد ما من الخصائص والوظائف التي يمكنك من خلالها إجراء عمليات معالجة مختلفة باستخدام السلاسل.

طول سلسلة

تتيح لك خاصية length ضبط طول السلسلة. هذا العقارإرجاع رقم:

var hello1 = "مرحبا بالعالم"; document.write("في السطر "" + hello + "" " + hello1.length + " Characters");

البحث في سلسلة

من أجل العثور على سلسلة فرعية معينة في سلسلة، يتم استخدام الدالتين IndexOf() (لإرجاع فهرس التواجد الأول للسلسلة الفرعية) وlastIndexOf() (لإرجاع فهرس التواجد الأخير للسلسلة الفرعية). تأخذ هذه الوظائف وسيطتين:

  • السلسلة الفرعية التي يجب العثور عليها بالفعل
  • وسيطة اختيارية تحدد من أي حرف سيتم البحث عن سلسلة فرعية في سلسلة

تقوم كلتا الدالتين بإرجاع رقم، وهو فهرس الحرف الذي تبدأ منه السلسلة الفرعية في السلسلة. إذا لم يتم العثور على السلسلة الفرعية، فسيتم إرجاع الرقم -1. لذلك، يتم استخدام هذه الوظائف في العوامل المنطقية، لأنه كقاعدة عامة، تحتاج فقط إلى التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية أم لا، ثم في هذه الحالة تتم مقارنة نتيجة هذه الوظائف بـ -1.

var str1 = "مرحبًا فاسيا!"; var podstr = "بيتيا"; if(str.indexOf(podstr) == -1)( document.write("لم يتم العثور على سلسلة فرعية."); ) else ( document.write("تم العثور على سلسلة فرعية."); )

في المثال، سيتم عرض الرسالة "لم يتم العثور على سلسلة فرعية"، نظرًا لأن السلسلة "Peter" غير موجودة في السلسلة "Hello Vasya!".

تتضمن الوظائف، يبدأ بـ، وينتهي بـ

الطريقة الأكثر حداثة str.includes(substr, pos) تُرجع صحيحًا إذا كانت السلسلة النصية تحتوي على السلسلة الفرعية، أو خطأ إذا لم تكن كذلك.

هذا - الاختيار الصحيح، إذا أردنا التحقق مما إذا كان هناك تطابق، ولكن الموضع غير مطلوب:

تنبيه("القطعة بالمعرف".تتضمن("القطعة")); // تنبيه حقيقي("Hello".includes("وداعا")); // خطأ شنيع

تتيح لك الوسيطة الثانية الاختيارية لـ str.includes بدء البحث في موضع محدد:

تنبيه ("القزم". يتضمن ("المعرف"))؛ // تنبيه صحيح("Midget".includes("id"، 3)); // خطأ، بدأ البحث من الموضع 3

يتحقق التابعان str.startsWith وstr.endsWith، على التوالي، مما إذا كانت السلسلة تبدأ وتنتهي بسلسلة محددة:

Alert("Widget".startsWith("Wid")); // صحيح، "Wid" - بداية "القطعة" تنبيه("Widget".endsWith("get")); // صحيح، "الحصول على" - إنهاء "القطعة"

اختيار السلسلة الفرعية

لقص سلسلة فرعية من سلسلة، يتم استخدام وظائف مثل substr() وsubstring().

تأخذ الدالة substring() وسيطتين:

  • موضع البداية للحرف في السطر، بدءًا من المكان الذي سيتم قطع السطر منه
  • الموضع النهائي الذي يجب قطع السلسلة إليه
var hello1 = "أهلا بالعالم. وداعا أيها العالم"; فار World1 = hello1.substring(7, 10); // من الفهرس السابع إلى العاشر document.write(world1); //عالم

تأخذ الدالة substr() أيضًا فهرس البداية للسلسلة الفرعية كمعلمة أولى، وطول السلسلة الفرعية كمعلمة ثانية:

var hello1 = "مرحبًا بالعالم. وداعًا أيها العالم"; فار باي1 = hello1.substr(12, 2); document.write(bye1);//قبل

وإذا لم يتم تحديد المعلمة الثانية، فسيتم اقتطاع السطر إلى النهاية:

var hello1 = "مرحبًا بالعالم. وداعًا أيها العالم"; فار باي1 = hello1.substr(12); document.write(bye1); // وداعا السلام

مراقبة حالة الرسالة

لتغيير حالة الأحرف، أي جعل كافة الأحرف صغيرة أو كبيرة، استخدم الدالتين toLowerCase() (لتحويل الأحرف إلى أحرف صغيرة، أي أن جميع الأحرف ستكون صغيرة) وtoUpperCase() (لتحويل الأحرف إلى الأحرف الكبيرة، أي أن جميع الحروف ستكون كبيرة).

var hello1 = "مرحبًا جيم"; document.write(hello1.toLowerCase() + "
"); // مرحبًا جيم document.write(hello1.toUpperCase() + "
"); //مرحبا جيم

الحصول على رمز من خلال فهرسه

من أجل العثور على حرف معين في سلسلة من خلال فهرسها، يتم استخدام الدالتين charAt() و charCodeAt(). تأخذ هاتان الدالتان فهرس الأحرف كوسيطة:

var hello1 = "مرحبًا جيم"; document.write(hello1.charAt(3) + "
"); // في document.write(hello1.charCodeAt(3) + "
"); //1080

ولكن فقط إذا قامت الدالة charAt() بإرجاع الحرف نفسه كنتيجة لعملها، فستقوم الدالة charCodeAt() بإرجاع رمز Unicode الرقمي لهذا الحرف.

إزالة المساحات

لإزالة المسافات في سلسلة، استخدم الدالة Trim():

var hello1 = "مرحبًا جيم"; var beforeLen = hello1.length; hello1 = hello1.trim(); var afterLen = hello1.length; document.write("طول السطر يصل إلى: " + beforeLen + "
"); //15 document.write("طول السطر بعد: " + afterLen + "
"); //10

سلاسل مترابطة

تسمح لك الدالة concat() بربط سلسلتين:

var hello1 = "مرحبًا"; فار العالم 1 = "فاسيا"; hello1 = hello1.concat(world1); document.write(hello); //مرحبا فاسيا

استبدال السلسلة الفرعية

تتيح لك وظيفة الاستبدال () استبدال سلسلة فرعية بأخرى:

var hello1 = "مساء الخير"; hello1 = hello1.replace("day", "evening"); document.write(hello1); //مساء الخير

تشير الوسيطة الأولى للدالة إلى السلسلة الفرعية التي يجب استبدالها، وتشير الوسيطة الثانية إلى السلسلة الفرعية التي يجب استبدالها.

تقسيم سلسلة إلى مصفوفة

تتيح لك الدالة سبليت () تقسيم سلسلة إلى مجموعة من السلاسل الفرعية باستخدام محدد محدد. يمكنك استخدام سلسلة تم تمريرها إلى الطريقة:

var mes = "كان الطقس جميلاً اليوم"; var stringArr = mes.split(" "); for(var str1 in stringArr) document.write(stringArr + "
");

مقارنة السلسلة

أيضًا، عند مقارنة السلاسل، يجب أن تأخذ في الاعتبار حالة الحروف. الحرف الكبير أصغر من الحرف الصغير، والحرف e خارج الأبجدية بشكل عام.

مهام

تغيير حالة الحرف الأخير في السلسلة

اكتب دالة lastLetterStr(str) من شأنها تغيير حالة الحرف الأخير وجعله كبيرًا.

فحص البريد العشوائي

اكتب دالة provSpam(str) التي ستتحقق من وجود سلاسل فرعية في السلسلة: "spam"، "sex"، "xxx". والعودة صحيحًا إذا كانت هناك بيانات سلسلة فرعية وخطأ بخلاف ذلك.

ابحث عن الرقم

اكتب دالة extrNum(str) تحصل على رقم من سلسلة إذا كانت السلسلة تحتوي على رقم ويجب أن ترجع دالة الرقم. على سبيل المثال، هناك خط "120 UAH" الذي يجب إرجاعه من السطر 120.

ولتعزيز ذلك، شاهد الفيديو حول العمل مع السلاسل النصية في JavaScript.

مرحبا بالجميع وكل عام وأنتم بخير. يذهب! سنبدأ بالنظر إلى خاصية length، والتي تسمح لنا بحساب عدد الأحرف في السلسلة:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str. length);

كما ترون، تعرض وحدة التحكم النتيجة، عدد الأحرف في السطر (54).

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str.charAt(7));

باستخدام طريقة charAt()، يمكننا الحصول على حرف سلسلة في موضع معين؛ في حالتنا، نحصل على الحرف "و" في الموضع السابع. لاحظ أن تقرير موضع السطر يبدأ من الصفر. على سبيل المثال، إذا أردنا الحصول على الحرف الأول من سلسلة:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; str.charAt(0);

هنا سوف نعود "م". هناك أيضًا طريقة مشابهة charCodeAt() تعمل تمامًا مثل charAt()، ولكنها لا تُرجع الحرف نفسه، بل تُرجع الكود الخاص به.

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str.charCodeAt(0));

سيتم إرجاع رمز الحرف "m" (1084) إلينا.

تعد طريقة charAt() مفيدة لاستخراج حرف واحد من سلسلة، ولكن إذا أردنا الحصول على مجموعة من الأحرف (سلسلة فرعية)، فإن الطرق التالية مناسبة لهذا الغرض:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str.slice(8,17));

تقوم طريقة الشريحة () بإرجاع سلسلة فرعية ("خصائص")، مع أخذ قيمتين رقميتين كوسيطتين، فهرس البداية والنهاية للسلسلة الفرعية. طريقة أخرى مماثلة هي substr ():

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str.substr(8,17));

سنستعيد هنا سلسلة فرعية ("خصائص العبد")، والوسيطة الأولى هي موضع البداية، والثانية هي عدد الأحرف في السلسلة الفرعية. بعد ذلك، سننظر في طرق العمل مع حالة الأحرف في السلاسل.

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str.toUpperCase());

تُرجع لنا طريقة toUpperCase()‎ سلسلة نصية تكون جميع الأحرف فيها بأحرف كبيرة، أي بأحرف كبيرة.

var str = "MBA"; console.log(str.toLowerCase());

تُرجع لنا طريقة toLowerCase()‎ سلسلة تحتوي على جميع الأحرف أحرف صغيرة، حروف صغيرة.

للعثور على سلسلة فرعية في سلسلة، يمكننا استخدام طريقة IndexOf():

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; document.write(str.indexOf("works"));

هذه الطريقةيأخذ كوسيطة السلسلة الفرعية التي نريد العثور عليها في السلسلة، وإذا عثر عليها، فسيتم إرجاع الموضع الذي تم العثور على التطابق فيه. إذا لم تكن هذه السلسلة الفرعية موجودة في السلسلة، فحينئذٍ:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; document.write(str.indexOf("العمل"));

سوف نحصل على القيمة -1. مثال:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"، sub = "work"; دالة IndexOf(str, substr) ( if (str.indexOf(substr) === -1) ( return "هذه السلسلة الفرعية ""+substr+"" غير موجودة في السلسلة ""+str+"""; ) else( Index = str.indexOf(substr) تم العثور على "سلسلة فرعية ""+substr+"" في الموضع "+index ) ) document.write(indexOf(str,sub));

لقد قمنا هنا بكتابة دالة صغيرة IndexOf(str,sub) والتي تأخذ سلسلة (str) وسلسلة فرعية (sub) كوسائط، وباستخدام طريقة IndexOf()، تتحقق من وجود سلسلة فرعية في السلسلة وترجع قيمة رسالة حول النتيجة. ألاحظ أن طريقة IndexOf () ترجع موضع السلسلة الفرعية بالنسبة إلى بداية السلسلة، أي من الفهرس صفر.

إذا أردنا العثور على موضع سلسلة فرعية بالنسبة إلى النهاية، فيمكننا استخدام الدالة lastIndexOf().

يتيح لك التابع Trim() إزالة المسافات من بداية ونهاية السلسلة، لنفترض أن لدينا السلسلة التالية:

var str = "طرق وخصائص العمل مع السلاسل النصية في جافا سكريبت"; console.log(str);

ونريد إزالة المسافات في البداية والنهاية:

Console.log(str.trim());

بعد أن نستخدم طريقة القطع () ستتم إزالة المسافات من نهاية وبداية السلسلة بنجاح.

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

أهنئكم بالعام الجديد القادم، أتمنى لكم السعادة والصحة والنجاح والحب وبالطبع حظا سعيدا! الوداع!

مهمة . بحث واستبدال

مهمة.نظرا لسلسلة "aaa@bbb@ccc". استبدل كل شيء @ على "!" باستخدام عالميبحث واستبدال.

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

var str = "aaa@bbb@ccc"; تنبيه(str.replace("@"، "!")); //الحصول على "aaa!bbb@ccc"

لاستبدال جميع المباريات نستخدم عالميالبحث باستخدام تعبير عادي:

var str = "aaa@bbb@ccc"; تنبيه(str.replace(/@/g, "!")); //الحصول على "aaa!bbb!ccc"

مهمة . طرق substr، سلسلة فرعية، شريحة

مهمة.نظرا لسلسلة "ااا ب ب سي سي سي". اقطع منه كلمة "بب"ثلاثة طرق مختلفة(عبر substr، سلسلة فرعية، شريحة).

حل:كلمة "بب"يبدأ بالحرف رقم 4 (الترقيم من الصفر)، وينتهي بالحرف رقم 6. فلنستخدم الطرق المشار إليها:

var str = "aaa bbb ccc"; تنبيه(str.substr(4, 3)); //substr(مكان القطع، مقدار القطع) تنبيه(str.substring(4, 7)); // سلسلة فرعية (من مكان القطع إلى مكان القطع) تنبيه (str.slice (4، 7))؛ // شريحة (من أين يتم القطع، ومن أين يتم القطع)

يرجى ملاحظة أنه في الأساليب سلسلة فرعيةو شريحةيجب أن تكون المعلمة الثانية أكبر بمقدار 1 من الحرف الذي نريد إزالته (أي، إذا حددنا الرقم 7، فسيتم القطع حتى الحرف السادس ضمناً).

مهمة . تحويل تنسيق التاريخ

مهمة.ثابت تاريخالتاريخ بالتنسيق "2025-12-31" "31/12/2025" .

حل:باستخدام طريقة التقسيم سنقوم بتقسيم السلسلة الخاصة بنا "2025-12-31" للصفيف بواسطة الفاصل "-" ، في هذه الحالة سيحتوي العنصر الصفري على السنة، الأول - الشهر، والثاني - اليوم:

var str = "31-12-2025"; var arr = Split("-"); تنبيه (arr)؛ // احصل على المصفوفة ["2025"، "12"، "31"]

الآن، بالإشارة إلى عناصر المصفوفة المختلفة حسب مفاتيحها، سنقوم بتشكيل السلسلة التي نحتاجها:

var str = "31-12-2025"; var arr = Split("-"); var newStr = arr + "/" + arr + "/"+arr; تنبيه (newStr)؛ // احصل على السلسلة "31/12/2025"

مشاكل لحلها

العمل مع حالة الأحرف

نظرا لسلسلة "شبيبة". اجعلها سلسلة "شبيبة".

نظرا لسلسلة "شبيبة". اجعلها سلسلة "شبيبة".

العمل مع الطول، السلسلة الفرعية، السلسلة الفرعية، الشريحة. العمل مع مؤشر

نظرا لسلسلة "أنا أتعلم جافا سكريبت!". يجد الشخصياتفي هذا الخط.

نظرا لسلسلة "أنا أتعلم جافا سكريبت!". ابحث عن موضع السلسلة الفرعية "أنا أقوم بالتدريس".

نظرا لمتغير شارع، الذي يخزن بعض النص. تنفيذ الختان نص طويلوذلك وفقاً للمبدأ التالي: إذا كان عدد أحرف هذا النص أكبر من المحدد في المتغير n، فإلى المتغير نتيجةدعنا نكتب الأوائل نشخصيات السلسلة شارعوأضف علامة الحذف "..." في النهاية. وإلا إلى متغير نتيجةكتابة محتويات المتغير شارع.

العمل مع استبدال

نظرا لسلسلة "أنا أتعلم جافا سكريبت!". استبدل كل شيء واصلاتعلى "!" باستخدام عالميبحث واستبدال.

العمل مع الانقسام

نظرا لسلسلة "أنا أتعلم جافا سكريبت!". باستخدام الطريقة ينقسماكتب كل كلمة من هذا السطر متفرقعنصر المصفوفة

نظرا لسلسلة "أنا أتعلم جافا سكريبت!". باستخدام الطريقة ينقسماكتب كل حرف من هذه السلسلة في عنصر صفيف منفصل.

ثابت تاريخالتاريخ بالتنسيق "2025-12-31" . تحويل هذا التاريخ إلى التنسيق "31.12.2025" .

العمل مع الانضمام

نظرا لمجموعة ["أنا"، "تعليم"، "جافا سكريبت"، "!"]. باستخدام الطريقة ينضمتحويل المصفوفة إلى سلسلة "أنا+أتعلم+جافا سكريبت+!".

مهام

يتحول الرسالة الأولىسلاسل إلى الأحرف الكبيرة.

تحويل الحرف الأول كل كلمةسلاسل إلى الأحرف الكبيرة.

تحويل السلسلة "var_test_text"الخامس "فارتستتكست". وبطبيعة الحال، يجب أن يعمل البرنامج النصي مع أي سلاسل مماثلة.

قد تتقدم بعض مقاطع الفيديو بشكل أسرع، لأننا لم نقم بتغطية ES6 بالكامل حتى الآن في هذه المرحلة من البرنامج التعليمي. ما عليك سوى تخطي مقاطع الفيديو هذه ومشاهدتها لاحقًا.

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

يقتبس

يجب أن تكون السلاسل النصية في JavaScript محاطة بعلامات اقتباس. هناك ثلاثة أنواع من علامات الاقتباس في JavaScript: علامات الاقتباس المزدوجة (" ")، وعلامات الاقتباس المفردة (" ")، وعلامات الاقتباس الخلفية (` `):

"سلسلة في علامات اقتباس مزدوجة" "سلسلة في علامات اقتباس مفردة" `سلسلة في علامات اقتباس خلفية`

يجب أن يتطابق نوع علامات الاقتباس في بداية السطر ونهايته.

يمكن أن تتكون السلاسل من صفر أو أكثر من الأحرف:

"" // سلسلة فارغة "سلسلة" // ليست سلسلة فارغة

لا تختلف السلاسل النصية ذات علامات الاقتباس المزدوجة والمفردة في وظائفها - فهي يمكن أن تحتوي فقط على نص وتسلسلات هروب. لكن السلاسل ذات الاقتباسات الخلفية لها وظائف أوسع. قد تحتوي هذه الخطوط على ما يسمى البدائل، يُشار إليها بعلامة الدولار و الأقواس المعقوفة$(التعبير). يمكن أن تحتوي البدائل على أي تعبيرات عشوائية:

Let str = "السلام!"; Let str2 = `مرحبًا $(str)`; // استخدام متغير في السطر تنبيه(صفحة2); // مرحبا بالعالم! تنبيه(`2 + 3 = $(2 + 3).`); // 2 + 3 = 5.

يتم تقييم التعبير الموجود في الاستبدال ($(...)) وتصبح نتيجته جزءًا من السلسلة.

يمكن أن تمتد السلاسل ذات الاقتباس الخلفي على أكثر من سطر واحد، مع الحفاظ على جميع أحرف المسافات البيضاء:

دع الأرقام = `الأرقام: 1 2`؛ تنبيه (أرقام)؛ // الأرقام: // 1 // 2

يتم استدعاء السلاسل ذات العلامات الخلفية سلاسل القالبأو حرفية القالب.

قد تحتوي السلاسل المحاطة بعلامة اقتباس واحدة على علامات اقتباس أخرى:

"علامات الاقتباس المفردة وعلامات الاقتباس الخلفية داخل علامات الاقتباس المزدوجة" "وهنا تكون "هكذا" و"هكذا"!" `وهنا "هكذا" و"هكذا"!'

للسهولة، يمكن تقسيم سلسلة حرفية كبيرة إلى أسطر متعددة، مع إنهاء كل سطر باستثناء الأخير بحرف \ :

تنبيه("هذا كله سطر واحد طويل"); // كلها عبارة عن سطر طويل واحد تنبيه("كلها عبارة عن سطر واحد \ طويل \"); // كلها عبارة عن سطر طويل واحد تنبيه(`كلها عبارة عن سطر واحد \ طويل \ سطر`)؛ // الأمر كله عبارة عن سطر طويل واحد

ترميز أحرف السلسلة

بغض النظر عن التشفير الذي تم تعيينه للصفحة، تستخدم JavaScript دائمًا ترميز UTF-16 للسلاسل.

في JavaScript، السلسلة عبارة عن تسلسل مرتب وثابت من قيم 16 بت، يمثل كل منها حرف Unicode. تستخدم JavaScript UTF-16 لتمثيل أحرف Unicode. تتضمن الأحرف الحروف والأرقام وعلامات الترقيم، رموز خاصةوأحرف المسافة البيضاء.

طول سلسلة

طول سلسلةهو عدد قيم 16 بت (وليس الأحرف نفسها) الموجودة فيه. طول السلسلة موجود في خاصية الطول:

تنبيه("مرحبا".الطول); // 6

تتم معالجة الأحرف التي لا تتناسب نقاط الكود الخاصة بها مع 16 بت وفقًا لقواعد تشفير UTF-16 كتسلسل من قيمتين 16 بت. هذا يعني أن السلسلة النصية التي يبلغ طولها 2 (قيمتان بطول 16 بت) يمكن أن تمثل حرفًا واحدًا في الواقع:

تنبيه("أ".الطول); // 1 تنبيه("𝑒".الطول); // 2

ترقيم أحرف السلسلة والوصول إليها

كما ذكرنا من قبل، السلسلة عبارة عن تسلسل مرتب لقيم 16 بت، كل منها يتوافق مع حرف معين. يبدأ ترقيم قيم 16 بت في السلسلة من الصفر، أي أن قيمة 16 بت الأولى تكون عند الفهرس 0، والثانية عند الفهرس 1، وهكذا. الفهرس عبارة عن رقم تسلسلي.

يمكنك الحصول على حرف سلسلة (يتكون من قيمة واحدة 16 بت) باستخدام فهرس محاط بين قوسين مربعين [index] :

Let str = "Hello"; تنبيه (شارع)؛ // P تنبيه (شارع)؛ // في

لاستخدام الفهارس للإشارة إلى حرف يتكون من قيمتين 16 بت، تحتاج إلى استخدام التسلسل لكتابة هذه المؤشرات بحيث تكون النتيجة تسلسلاً من قيمتين 16 بت:

Let str = "𝑒"; تنبيه(صفحة + صفحة); // "𝑒"

السلاسل غير قابلة للتغيير

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

بما أن السلاسل النصية غير قابلة للتغيير، فإن الطرق المستخدمة للعمل مع السلاسل النصية تُرجع سلاسل جديدة بدلاً من تعديل السلسلة التي تم استدعاؤها عليها:

Let str = "مرحبًا!"; تنبيه (str.toUpperCase())؛ // "HELLO" - القيمة الجديدة التي يتم إرجاعها بواسطة الطريقة تنبيه(صفحة); // "مرحبًا" - لم يتم تغيير السطر الأصلي

لتغيير سلسلة، يمكنك إنشاء سلسلة جديدة وكتابتها إلى نفس المتغير بدلاً من السلسلة القديمة:

دع str = "سلسلة"؛ str = str.toUpperCase(); تنبيه (شارع)؛ // "خط"

تسلسلات الهروب

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

ويوضح الجدول أدناه تسلسلات التحكم:

التبعية معنى
\0 الحرف NUL هو الحرف الفارغ ("\u0000").
\ ر علامة التبويب الأفقية ("\u0009").
السطر الجديد ("\u000A").
إن الرجوع إلى موضع واحد هو ما يحدث عند الضغط على مفتاح مسافة للخلف ("\u0008").
\ ص عودة النقل ("\u000D").
\F ترجمة الصفحة - مسح الصفحة ("\u000C").
\الخامس علامة التبويب العمودية ("\u000B").
\" اقتباس مزدوج ("\u0022").
\" اقتباس مفرد ("\u0027").
\\ شرطة مائلة عكسية ("\u005C").
\xن عدد الأحرف من مجموعة أحرف ISO Latin-1، المحددة برقمين سداسي عشري (N هو رقم سداسي عشري 0-F). على سبيل المثال، "\x41" (هذا هو رمز الحرف "A").
\uNNNN عدد الأحرف من مجموعة أحرف Unicode، المحدد بأربعة أرقام سداسية عشرية (N هو رقم سداسي عشري 0-F). على سبيل المثال، "\u0041" (هذا هو رمز الحرف "A").

يمكن أن تظهر تسلسلات الهروب في أي مكان على السطر:

تنبيه("الحرف اليوناني سيجما: \u03a3."); // الحرف اليوناني سيجما: Σ. تنبيه ("سلسلة متعددة الأسطر") // سلسلة متعددة الأسطر تنبيه ("يتم استخدام علامات الاقتباس المزدوجة في الداخل")؛ // يتم استخدام علامات الاقتباس المزدوجة في الداخل

إذا كان الحرف \ يسبق أي حرف آخر غير الأحرف الواردة في الجدول، فسيتم تجاهله ببساطة من قبل المترجم:

تنبيه("\ك"); // "ك"

يمكن استخدام أحرف Unicode المحددة باستخدام تسلسل الهروب ليس فقط داخل السلسلة الحرفية، ولكن أيضًا في المعرفات:

دع a\u03a3 = 5؛ تنبيه (أ\u03a3)؛ // 5

سلسلة

سلسلة هو تسلسل سلسلتين أو أكثر في سلسلة واحدة أكبر. يحدث التسلسل باستخدام عامل التشغيل + (زائد). عند التسلسل، تتم إضافة كل سطر لاحق إلى نهاية السطر السابق:

var str1 = "مرحبًا"; var str2 = "العالم!"; وثيقة.كتابة(str1 + str2 + "
"); // "مرحبا بالعالم!" document.write(str1 + "العالم!"); حاول »

سيتم تحويل قيمة أي نوع متصل بسلسلة ضمنيًا (تلقائيًا) إلى سلسلة ثم يتم ربطها.

var str1 = "مرحبًا"; تنبيه(str1 + 1); // "مرحبا 1" تنبيه (صحيح + str1)؛ // "trueHello" تنبيه (str1 + NaN)؛ // "مرحبا نان"