يبدأ سطر جافا سكريبت بـ. أساليب كائن السلسلة القياسية

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

السلاسل النصية هي ببساطة مجموعات من الأحرف، مثل "JavaScript" و"Hello World!" أو "http://www.quirksmode.org" أو حتى "14". لكي تبرمج بلغة JavaScript، عليك أن تعرف ما هي السلاسل النصية وكيفية التعامل معها، لأنك ستحتاج إلى استخدامها كثيرًا. أشياء كثيرة مثل صفحات URL, قيم CSS-المعلمات وعناصر إدخال النموذج كلها سلاسل.

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

أساسيات السلسلة

دعونا نلقي نظرة على أساسيات العمل مع السلاسل في JavaScript.

باستخدام الاقتباسات

عندما تعلن سلاسل في جافا سكريبتأو العمل معهم، قم دائمًا بإحاطتهم بعلامات اقتباس مفردة أو مزدوجة. هذا يخبر المتصفح أنه يتعامل مع سلسلة. لا تخلط بين استخدام علامات الاقتباس في التعليمات البرمجية الخاصة بك؛ إذا بدأت سطرًا بعلامة اقتباس واحدة وانتهت بعلامة اقتباس مزدوجة، فلن تفهم JavaScript ما تقصده. عادة ما أستخدم ونقلت واحدةللعمل مع السلاسل، لأنني قررت استخدام علامات الاقتباس المزدوجة لـ HTML، وعلامات الاقتباس المفردة لـ JavaScript. بالطبع، يمكنك أن تفعل كل شيء بشكل مختلف، لكنني أنصحك بالتوصل إلى قاعدة مماثلة لنفسك.

لنتخيل سطرين سنستخدمهما خلال المقالة:

var a = "مرحبًا بالعالم!"; var b = "أنا طالب.";

لقد أعلنا الآن عن متغيرين، "a" و"b"، وقمنا بتخصيص قيم سلسلة لهما. بعد ذلك يمكننا العمل معهم، ولكن دعونا أولاً نحل مشكلة واحدة: لنفترض أنني كتبت:

var b = "أنا طالب.";

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

var b = "أنا طالب.";

لاحظ أنه يمكنك إدراج علامات الاقتباس المزدوجة في سلسلة دون الهروب منها. نظرًا لأنك تستخدم علامات الاقتباس المفردة لبدء السلسلة وإنهائها،

var b = "أنا "طالب".";

ينظر إليها دون مشاكل. يتم التعامل مع علامات الاقتباس المزدوجة تلقائيًا كجزء من سلسلة، وليس أمرًا.

وظائف مدمجة

بمجرد تحديد السلاسل، يمكنك البدء في استخدامها. على سبيل المثال، يمكنك سلسلة سلسلة واحدة إلى أخرى، أو خذ سلسلة فرعية من السلسلة "b" تتكون من الأحرف الثانية إلى الرابعة وأدخلها في منتصف السلسلة "a"، أو حدد الحرف الذي هو الثاني عشر في "a"، كم عدد الأحرف الموجودة في "b" "، سواء كانت تحتوي على حرف "q" وما إلى ذلك.

للقيام بذلك، يمكنك استخدام الوظائف المضمنة التي تحددها JavaScript مسبقًا لكل سطر. إحداهما، "الطول"، تُرجع طول السلسلة. بمعنى، إذا كنت تريد حساب طول "Hello World!"، فاكتب:

var c = "مرحبا بالعالم!". length;

في السابق، قمنا بتخصيص هذه السلسلة للمتغير "a". وبذلك تكون قد جعلت المتغير "a" سلسلة نصية، بحيث يمكن أيضًا تطبيق دالة "length" عليه، وستعطي العملية التالية نفس النتيجة:

فار ج = أ. الطول؛

تذكر أنه يمكنك استخدام "الطول" لأي سلسلة - فهي وظيفة مدمجة. أنت تستطيع حساب طول أي سلسلةعلى سبيل المثال: "location.href" أو "document.title" أو الذي تم الإعلان عنه بواسطتك.

سأقدم أدناه قائمة بالطرق والخصائص المضمنة الشائعة.

سلاسل وأرقام

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

فار ج = أ + 12؛

في بعض لغات البرمجة، ستؤدي معالجة مثل هذه السلسلة إلى حدوث خطأ. بعد كل شيء، "a" عبارة عن سلسلة، و"12" هو رقم. ومع ذلك، تحاول JavaScript حل المشكلة بافتراض أن "12" عبارة عن سلسلة نصية أيضًا. وهكذا يصبح "c" "Hello World!12". هذا يعني أنه إذا استخدمت "+" مع سلسلة ورقم، فستحاول JavaScript جعل الرقم سلسلة. إذا قمت بتطبيق عمليات رياضية على سلسلة ما، فستحاول JavaScript تحويلها إلى رقم. إذا لم يكن من الممكن تحويل سلسلة إلى رقم (على سبيل المثال، بسبب وجود أحرف فيها)، فسترجع JavaScript NaN - "ليس رقمًا - ليس رقمًا."

أخيرًا، في JavaScript لا يوجد فرق بين الأعداد الصحيحة وأرقام الفاصلة العائمة.

رقم → سلسلة

ل رقم لتحويل السلسلةيدخل:

فار ج = (16 * 24) / 49 + 12؛ d = c.toString();

يمكنك بعد ذلك تطبيق كافة أساليب السلسلة على "d" و"c" الذي لا يزال يحتوي على رقم.

سلسلة → رقم

إذا كنت تريد تحويل سلسلة إلى رقم، تأكد أولاً من أنها تتكون من الأحرف من 0 إلى 9 فقط. للقيام بذلك، أقوم ببساطة بضرب السلسلة بـ 1.

فار ج = "1234"; د = ج * 1؛

بما أن الضرب يعمل فقط مع الأرقام، فإن JavaScript تحول السلسلة إلى رقم إن أمكن. وإلا فإن النتيجة هي NaN.

لاحظ أنه إذا كتبت:

فار ج = "1234"; د = ج + 0؛

ستكون النتيجة "12340" لأن JavaScript تستخدم "+" لتسلسل السلاسل بدلاً من إضافتها.

خصائص السلسلة والأساليب

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

String_name.method();

قائمة طرق JavaScript المضمنة للعمل مع السلاسل

التسلسل - ربط السلاسل

أولاً، يمكنك ربط السلاسل عن طريق إضافتها معًا، كما يلي:

Document.write(a + b);

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

Document.write(a + " " + b);

لذلك سنقوم بتوصيل ثلاث سلاسل: "a"، """" (مسافة واحدة) و"b"، مما يؤدي إلى: "Hello World!" أنا طالب. »

يمكنك حتى استخدام الأرقام أو الحسابات، على سبيل المثال:

Document.write(a + 3 * 3 + b);

الآن نربط السلسلة "a" ثم نتيجة التعبير "3*3" التي تعتبر سلسلة، و"b" نحصل على: "Hello World!9 أنا طالب". »

عليك أن تكون حذرا عند استخدام الإضافة. فريق

Document.write(a + 3 + 3 + b);

يربط 4 سلاسل: "a" و"3" و"3" و"b" لأن "+" في في هذه الحالةتعني "ضم السطور" وليس "إضافة" والنتيجة هي: "أهلاً بالعالم! 33 أنا طالب". " إذا كنت تريد إضافة 3 و3 قبل إنشاء سلسلة، فاستخدم الأقواس.

Document.write(a + (3 + 3) + b);

يربط هذا التعبير السلسلة "أ"، نتيجة التعبير "3 + 3" و"ب"، فينتج: "مرحبًا بالعالم!6 أنا طالب. أنا طالب". "

دليل ل

إحدى الطرق المضمنة الأكثر استخدامًا هي "indexOf". كل حرف له فهرس خاص به يحتوي على رقم موضعه في السطر. لاحظ أن فهرس الحرف الأول هو 0، والثاني هو 1، وما إلى ذلك. وبالتالي، فإن فهرس الحرف "w" في السلسلة "a" هو 6.

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

var a = "مرحبًا بالعالم!"; document.write(a.indexOf("w"));

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

Document.write(a.indexOf("o"));

سيرجع 4 لأنه فهرس أول "o" في السلسلة.

يمكنك أيضًا البحث عن مجموعة من الرموز. (بالطبع، هذه أيضًا سلسلة، ولكن لتجنب الالتباس، لن أسميها كذلك). يقوم "indexOf" بإرجاع موضع الحرف الأول من المجموعة. على سبيل المثال:

Document.write(a.indexOf("o w"));

سيُرجع أيضًا 4 لأنه فهرس "o".

علاوة على ذلك، من الممكن البحث عن حرف بعد فهرس معين. إذا دخلت

Document.write(a.indexOf("o", 5));

ثم ستحصل على فهرس الحرف "o" الأول بعد الحرف ذو الفهرس 5 (هذه مسافة)، أي أن النتيجة ستكون 7 .

إذا لم يظهر الحرف أو المجموعة في السلسلة، فسيُرجع "indexOf" "-1". هذا هو الاستخدام الأكثر شيوعًا لـ "indexOf": التحقق من وجود مجموعة معينة من الأحرف. إنه جوهر البرنامج النصي الذي يحدد المتصفح. لتعريف IE عليك أن تأخذ السطر:

Navigator.userAgent;

وتحقق مما إذا كان يحتوي على "MSIE":

إذا (navigator.userAgent.indexOf("MSIE")!= -1) (//أي إجراءات باستخدام Internet Explorer)

إذا لم يكن فهرس "MSIE" هو "-1" (في حالة ظهور "MSIE" في أي مكان في السطر)، فإن المتصفح الحالي هو IE.

lastIndexOf

يوجد أيضًا أسلوب "lastIndexOf" الذي يُرجع آخر تواجد لحرف أو مجموعة. إنه يفعل عكس "indexOf". فريق

var b = "أنا طالب."; document.write(b.lastIndexOf("t"));

سيرجع 13 لأنه فهرس آخر حرف "t" في السلسلة.

شارات

تقوم طريقة "charAt" بإرجاع الحرف في الموضع المحدد. على سبيل المثال، عندما تدخل

var b = "أنا طالب."; document.write(b.charAt(5));

والنتيجة هي "a" لأنه الحرف في المركز السادس (تذكر أن فهرس الحرف الأول يبدأ عند 0).

طول

تقوم طريقة "الطول" بإرجاع طول السلسلة.

var b = "أنا طالب."; document.write(b. length);

سيعود "15". طول السلسلة أكبر بمقدار 1 من فهرس الحرف الأخير.

ينقسم

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

var b = "أنا طالب." var temp = new Array(); درجة الحرارة = b.split(" ");

الآن يتم تقسيم السلسلة إلى 4 سلاسل فرعية، والتي يتم وضعها في المصفوفة "المؤقتة". لقد اختفت المساحات نفسها.

درجة الحرارة = "أنا"; درجة الحرارة = "صباحا"؛ درجة الحرارة = "أ"؛ درجة الحرارة = "الطالب"؛

يتم استخدام طريقة "السلسلة الفرعية" لطرح جزء من السلسلة. بناء جملة الطريقة: ".substring(first_index, last_index)". على سبيل المثال:

var a = "مرحبًا بالعالم!"; document.write(a.substring(4, 8));

سيعود "o wo" من الأول "o" (الفهرس 4) إلى الثاني (الفهرس 7). لاحظ أن "r" (الفهرس 8) ليس جزءًا من السلسلة الفرعية.

يمكنك أيضًا كتابة:

var a = "مرحبًا بالعالم!"; document.write(a.substring(4));

هذا سيعطي السلسلة الفرعية بأكملها "يا عالم! "، بدءًا من الحرف الذي يحتوي على الفهرس 4 وحتى نهاية السطر.

substr

هناك أيضًا طريقة "substr" تعمل بشكل مختلف قليلاً. ولا يستخدم رقم الفهرس كوسيطة ثانية، بل عدد الأحرف. إنه

Document.write(a.substr(4, 8));

تُرجع 8 أحرف، بدءًا من الحرف الموجود في الفهرس 4 ("o")، أي أن النتيجة هي: "o world! »

toLowerCase وtoUpperCase

أخيرًا، هناك طريقتان قد تكونان مفيدتين لك في بعض الأحيان: "toLowerCase" يحول السلسلة بأكملها إلى أحرف صغيرة، و"toUpperCase" يحولها إلى أحرف كبيرة.

var b = "أنا طالب."; document.write(b.toUpperCase());

ونتيجة لذلك، نحصل على "أنا طالب". "

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

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

وصف متغيرات السلسلة

يتم استخدام بناء var للإعلان عن سلسلة. يمكنك تعيين قيمتها على الفور أو إنشائها أثناء تنفيذ الخوارزمية. يمكنك استخدام علامات الاقتباس المفردة أو المزدوجة لسلسلة. إذا كان يجب أن يحتوي على علامة اقتباس، فيجب تهريبه باستخدام الحرف "".

تتطلب السلسلة التي يُشار إليها بعلامات اقتباس مزدوجة الهروب من علامات الاقتباس المزدوجة الداخلية. وبالمثل، فإن العلامة المميزة بعلامات اقتباس مفردة تعد أمرًا بالغ الأهمية لوجود علامات الاقتباس المفردة بالداخل.

في في هذا المثاليسرد السطر "str_dbl" معلومات مفيدة رموز خاصة، والتي يمكن استخدامها في سلسلة. في هذه الحالة، يتم هروب الحرف "" نفسه.

السلسلة هي دائمًا مصفوفة

يمكن أن تعمل JavaScript مع السلاسل بعدة طرق. يوفر بناء جملة اللغة العديد من الخيارات. بادئ ذي بدء، لا ينبغي للمرء أن ينسى أبدًا ما يلي (في سياق الأوصاف المقدمة):

  • str_isV => "V";
  • str_chr => """;
  • str_dbl => "أ".

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

استخدام الدالة charAt() له تأثير مماثل:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => """;
  • str_dbl.charAt(5) => "أ".

يمكن للمبرمج استخدام أي خيار.

وظائف السلسلة الأساسية

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

الطريقة الأكثر أهمية للسلسلة (أو بالأحرى الخاصية) هي طولها.

  • var xStr = str_isV.length + '/' + str_chr.length + '/' + str_dbl.length.

النتيجة: 11/12/175 حسب سطور الوصف أعلاه.

أهم زوج من وظائف السلسلة هو تقسيم السلسلة إلى مصفوفة من العناصر ودمج المصفوفة في سلسلة:

  • انقسام (ق [، ل])؛
  • الانضمام (الانضمامات).

في الحالة الأولى، يتم تقسيم السلسلة عند الحرف المحدد "s" إلى مصفوفة من العناصر لا يتجاوز عدد العناصر فيها القيمة "l". إذا لم يتم تحديد الكمية، فسيتم كسر السطر بأكمله.

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

ومن السمات البارزة لهذا الزوج: يمكن إجراء التقسيم باستخدام فاصل واحد، ويمكن إجراء الدمج باستخدام فاصل آخر. في هذا السياق، يمكن لجافا سكريبت العمل مع سلاسل "خارج" بناء جملة اللغة.

وظائف السلسلة الكلاسيكية

وظائف معالجة السلسلة الشائعة:

  • يبحث؛
  • عينة؛
  • إستبدال؛
  • تحويل.

يتم تمثيلها بالطرق: IndexOf() و lastIndexOf() و substr() و substring() و toLowerCase() و toUpperCase() و concan() و charCodeAt() وغيرها.

في JavaScript، يتم تمثيل العمل باستخدام السلاسل من خلال مجموعة كبيرة ومتنوعة من الوظائف، ولكنها إما تكرر بعضها البعض أو تُترك للخوارزميات القديمة والتوافق.

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

  • str = str1 + str2 + str3؛

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

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

في JavaScript، يتضمن العمل مع السلاسل آلية التعبير العادي. يتيح ذلك إجراء عمليات البحث المعقدة والجلب وتحويلات السلسلة داخل المتصفح دون الاتصال بالخادم.

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

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

أمثلة التعبير العادي

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

فيما يلي وظائف تتحقق مما إذا كان الإدخال يحتوي على عدد صحيح (schInt) أو رقم حقيقي (schReal). يوضح المثال التالي مدى كفاءة معالجة السلاسل عن طريق التحقق من وجود أحرف صالحة فقط: schText - text فقط، schMail - عنوان صحيحبريد إلكتروني.

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

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

سلاسل كائنية التوجه

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

يتضمن أي استخدام لوظائف السلسلة معالجة المعنى الحقيقي، والذي تحدده البيانات ونطاق التطبيق والغرض المحدد للخوارزمية.

الحل المثالي هو دائمًا تفسير البيانات لمعناها.

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

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

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

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

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

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

وصف متغيرات السلسلة

للإعلان عن سلسلة، استخدم البناء فار.يمكنك تعيين قيمتها على الفور أو إنشائها أثناء تنفيذ الخوارزمية. يمكنك استخدام علامات الاقتباس المفردة أو المزدوجة لسلسلة. إذا كان يجب أن يحتوي على علامة اقتباس، فيجب تهريبه باستخدام الحرف "\".

يتطلب السطر المشار إليه الهروب من علامات الاقتباس المزدوجة الداخلية. وبالمثل، فإن العلامة المميزة بعلامات اقتباس مفردة تعد أمرًا بالغ الأهمية لوجود علامات الاقتباس المفردة بالداخل.

في هذا المثال، تسرد السلسلة "str_dbl" أحرفًا خاصة مفيدة يمكن استخدامها في السلسلة. في هذه الحالة، يتم هروب الحرف "\" نفسه.

السلسلة هي دائمًا مصفوفة

يمكن أن تعمل JavaScript مع السلاسل بعدة طرق. يوفر بناء جملة اللغة العديد من الخيارات. بادئ ذي بدء، لا ينبغي للمرء أن ينسى أبدًا ما يلي (في سياق الأوصاف المقدمة):

  • str_isV => "V";
  • str_chr => """;
  • str_dbl => "أ".

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

استخدام الدالة charAt() له تأثير مماثل:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => """;
  • str_dbl.charAt(5) => "أ".

يمكن للمبرمج استخدام أي خيار.

وظائف السلسلة الأساسية

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

الطريقة الأكثر أهمية للسلسلة (أو بالأحرى الخاصية) هي طولها.

  • var xStr = str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

النتيجة: 11/12/175 حسب سطور الوصف أعلاه.

أهم زوج من وظائف السلسلة هو تقسيم السلسلة إلى مصفوفة من العناصر ودمج المصفوفة في سلسلة:

  • انقسام (ق [، ل])؛
  • الانضمام (الانضمامات).

في الحالة الأولى، يتم تقسيم السلسلة عند الحرف المحدد "s" إلى مصفوفة من العناصر لا يتجاوز عدد العناصر فيها القيمة "l". إذا لم يتم تحديد الكمية، فسيتم كسر السطر بأكمله.

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

ومن السمات البارزة لهذا الزوج: يمكن إجراء التقسيم باستخدام فاصل واحد، ويمكن إجراء الدمج باستخدام فاصل آخر. في هذا السياق، يمكن لجافا سكريبت العمل مع سلاسل "خارج" بناء جملة اللغة.

وظائف السلسلة الكلاسيكية

وظائف معالجة السلسلة الشائعة:

  • يبحث؛
  • عينة؛
  • إستبدال؛
  • تحويل.

ممثلة بالطرق: IndexOf() و lastIndexOf() و toLowerCase() و toUpperCase() و concan() و charCodeAt() وغيرها.

في JavaScript، يتم تمثيل العمل باستخدام السلاسل من خلال مجموعة كبيرة ومتنوعة من الوظائف، ولكنها إما تكرر بعضها البعض أو تُترك للخوارزميات القديمة والتوافق.

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

  • str = str1 + str2 + str3؛

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

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

في JavaScript، يتضمن العمل مع السلاسل آلية التعبير العادي. يتيح ذلك إجراء عمليات البحث المعقدة والجلب وتحويلات السلسلة داخل المتصفح دون الاتصال بالخادم.

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

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

أمثلة التعبير العادي

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

فيما يلي وظائف تتحقق مما إذا كان الإدخال يحتوي على عدد صحيح (schInt) أو رقم حقيقي (schReal). يوضح المثال التالي مدى كفاءة معالجة السلاسل عن طريق التحقق من وجود أحرف صالحة فقط: schText - نص فقط، schMail - عنوان بريد إلكتروني صالح.

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

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

سلاسل كائنية التوجه

في جافا سكريبت، يتم تمثيل العمل مع السلاسل من خلال مجموعة واسعة من الوظائف. ولكن هذا ليس سببا وجيها لاستخدامها في شكلها الأصلي. إن بناء الجملة وجودة الوظائف لا تشوبها شائبة، ولكنه حل واحد يناسب الجميع.

يتضمن أي استخدام لوظائف السلسلة معالجة المعنى الحقيقي، والذي تحدده البيانات ونطاق التطبيق والغرض المحدد للخوارزمية.

الحل المثالي هو دائمًا تفسير البيانات لمعناها.

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

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

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

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

من المؤلف:تحيات أصدقاء. في العديد من المقالات السابقة تعرفنا عليها نوع رقميالبيانات في JavaScript والعمل مع الأرقام. حان الوقت الآن للعمل مع السلاسل في JavaScript. دعونا نلقي نظرة فاحصة على نوع بيانات السلسلة في JavaScript.

لقد تعرفنا لفترة وجيزة على نوع السلسلة، وفي الواقع، تعلمنا فقط ما هي السلسلة وكيفية كتابتها. دعونا الآن نلقي نظرة فاحصة على السلاسل وطرق العمل معها.

كما تتذكر، أي نص في JavaScript هو عبارة عن سلسلة. يجب أن تكون السلسلة محاطة بعلامات اقتباس، مفردة أو مزدوجة، فلا فرق:

var hi = "hello"، name = "John";

فار مرحبا = "مرحبا" ,

الاسم = "جون" ؛

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

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit. Quos nisi, culpa exercititiem!"; console.log(text);

فار النص = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit. Quos nisi, culpa exercitementem!";

وحدة التحكم. سجل (نص)؛

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

كما ترون يا بلدي محرر النصأبرزت بالفعل باللون الأحمر مشكلة محتملة. دعونا نرى كيف يتفاعل المتصفح مع فاصل الأسطر في هذا التفسير:

خطأ في بناء الجملة، كما هو متوقع. كيف تكون؟ هناك عدة طرق لتخزين نص متعدد الأسطر في متغير. ربما تكون قد خمنت بالفعل بشأن إحداها، ونحن نتحدث عن تسلسل السلسلة:

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

التدريع حل مشكلتنا أيضًا. ومع ذلك، إذا نظرنا إلى وحدة التحكم، فإن كلاً من تسلسل السلسلة وخلاص الخط، أثناء حل مشكلة الكتابة إلى البرنامج، لم يحل مشكلة عرض سلسلة متعددة الأسطر على الشاشة. بدلاً من سطر متعدد الأسطر، سنرى نصًا من سطر واحد في وحدة التحكم. ماذا علي أن أفعل؟

وهنا سيساعدنا حرف السطر الجديد الخاص - \n. عن طريق إضافة هذا الحرف الخاص إلى سلسلة في في المكان الصحيح، سنطلب من المترجم أن ينهي عند هذه النقطة الخط الحاليوإجراء الانتقال إلى خط جديد.

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit.\\nQuos nisi, culpa exercitementem!"; console.log(text);

فار النص = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit.\

"Quos nisi، culpa exercititiem!";

وحدة التحكم. سجل (نص)؛

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

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit.\nQuos nisi, culpa exercititiem!"; console.log(text);

فار النص = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimosmaxime et tempore omnis, ab fugit.\nQuos nisi, culpa exercitementem!";

وحدة التحكم. سجل (نص)؛

لن تتغير النتيجة على الشاشة، وسنرى نصًا متعدد الأسطر في وحدة تحكم المتصفح:

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

var text = "لوريم إيبسوم د"olor sit amet";

تحياتي لكل من قرر تمامًا تعلم لغة موجهة نحو النماذج الأولية. آخر مرة أخبرتك عنها، واليوم سننظر فيها سلاسل جافا سكريبت. نظرًا لأن جميع عناصر النص في هذه اللغة عبارة عن سلاسل (لا يوجد تنسيق منفصل للأحرف)، فيمكنك تخمين ما يشغله هذا القسم جزء كبيرفي تعلم بناء جملة JS.

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

بناء جملة متغير السلسلة

في لغة JS، يتم الإعلان عن كافة المتغيرات باستخدام الكلمة الرئيسية var، وبعد ذلك، اعتمادًا على تنسيق المعلمات، يتم تحديد نوع المتغير المُعلن. كما تتذكر من جافا سكريبت، لا توجد كتابة قوية. ولهذا السبب يوجد هذا الموقف في الكود.

عند التهيئة القيم المتغيرةيمكن تأطيرها في صورة مزدوجة ومفردة، وبدءًا من عام 2015، في علامات اقتباس مفردة منحرفة. لقد أرفقت أدناه أمثلة لكل طريقة للإعلان عن السلاسل.

أريد أن أهتم بشكل خاص بالطريقة الثالثة. لديها عدد من المزايا.

بمساعدتها، يمكنك بسهولة إجراء فاصل أسطر وسيبدو كما يلي:

تنبيه("عدة

أنا أنقل

والطريقة الثالثة تسمح لك باستخدام البناء $(...). هناك حاجة إلى هذه الأداة لإدراج الاستيفاء. لا تنزعج، الآن سأخبرك ما هو.

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

1 2 3 فار القلم = 3؛ قلم فار = 1؛ تنبيه(`$(قلم) + $(قلم رصاص*5) = $(قلم + قلم رصاص)`);

فار القلم = 3؛ قلم فار = 1؛ تنبيه(`$(قلم) + $(قلم رصاص*5) = $(قلم + قلم رصاص)`);

ونتيجة لذلك، سيتم عرض التعبير "3 + 1*5 = 8" على الشاشة.

أما الطريقتان الأوليتان لإعلان السلاسل فلا فرق فيهما.

دعونا نتحدث قليلا عن الشخصيات الخاصة

تحتوي العديد من لغات البرمجة على أحرف خاصة تساعد في التعامل مع النص في السلاسل. وأشهرها هو فاصل الأسطر (\ن).

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

لقد أرفقت أدناه جدولًا صغيرًا يسرد بعض الأحرف الخاصة.

نحن نخزن ترسانة ثقيلة من الأساليب والخصائص

قدم مطورو اللغة العديد من الأساليب والخصائص لتبسيط وتحسين العمل مع السلاسل. ومع إصدار معيار جديد يسمى ES-2015 العام الماضي، تم تجديد هذه القائمة بأدوات جديدة.

طول

سأبدأ بالخاصية الأكثر شيوعًا، والتي تساعد في معرفة طول قيم متغيرات السلسلة. هذا طول. يتم استخدامه بهذه الطريقة:

var string = "وحيد القرن";

تنبيه (سلسلة. الطول)؛

سيظهر الجواب الرقم 9. أيضا هذا العقاريمكن تطبيقها على القيم نفسها:

"وحيدات".الطول؛

النتيجة لن تتغير.

حرف ()

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

var string = "وحيد القرن";

تنبيه(string.charAt(0));.

ومع ذلك، لن تكون النتيجة الناتجة نوع حرف، بل ستظل تعتبر سلسلة مكونة من حرف واحد.

من toLowerCase() إلى UpperCase()

تتحكم هذه الطرق في حالة الأحرف. عند كتابة الكود "المحتوى".

إلى الحالة العليا()سيتم عرض الكلمة بأكملها بأحرف كبيرة.

للحصول على التأثير المعاكس، يجب عليك استخدام "المحتوى". toLowerCase().

دليل ل()

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

1 2 3 4 var text = "تنظيم بحث عن الزهور!"; تنبيه(text.indexOf("اللون")); //19 تنبيه(text.indexOf(" ")); //12 تنبيه(text.lastIndexOf(" ")); //18

var text = "تنظيم بحث عن الزهور!"; تنبيه(text.indexOf("color")); //19 تنبيه(text.indexOf(" ")); //12 تنبيه(text.lastIndexOf(" ")); //18

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

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

لهذا الإجراء، تم إنشاء ثلاث طرق متطابقة تقريبًا في js.

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

var text = "الغلاف الجوي"; تنبيه(text.substring(4)); // سيتم عرض "المجال" تنبيه (text.substring(2, 5)); // عرض "موس" تنبيه (نص. شريحة (2، 5))؛ // عرض "موس"

الآن دعونا نلقي نظرة على الطريقة الثالثة، والتي تسمى فرعية (). يجب أيضًا أن يتضمن وسيطتين: يبدأو طول.

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

var text = "الغلاف الجوي";

تنبيه(text.substr(2, 5)); // عرض "موسفي"

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

رد()

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

سيحل هذا المثال محل السلسلة الفرعية في الكلمة الأولى فقط.

var text = "الغلاف الجوي"; var newText = text.replace("Atmo"، "Strato") تنبيه (newText) // النتيجة: الغلاف الجوي الستراتوسفير

وفي تنفيذ هذا البرنامج، بسبب العلم تعبير عاديسيتم استبدال "g" عالميًا.

var text = "الغلاف الجوي"; var newText = text.replace(/Atmo/g,"Strato") تنبيه(newText) // النتيجة: الستراتوسفير الستراتوسفير

دعونا نفعل التحويل

توفر JavaScript ثلاثة أنواع فقط من تحويل نوع الكائن:

  1. رقمي؛
  2. خيط؛
  3. منطقية.

في المنشور الحالي سأتحدث عن 2 منهم، لأن المعرفة بهما أكثر ضرورة للعمل مع السلاسل.

التحويل الرقمي

لتحويل قيمة عنصر بشكل صريح إلى نموذج رقمي، يمكنك استخدام الرقم (القيمة).

هناك أيضًا تعبير أقصر: +"999".

var a = Number("999");

تحويل السلسلة

يتم تنفيذها بواسطة الدالة يُحذًِر، وكذلك دعوة صريحة سلسلة (نص).

1 2 3 تنبيه (999+ "السعر الفائق") var text = String(999) تنبيه(text === "999");

تنبيه (999+ "السعر الفائق") var text = String(999) تنبيه(text === "999");

وبهذه المناسبة قررت إنهاء عملي. اشترك في مدونتي ولا تنسى مشاركة الرابط الخاص بها مع أصدقائك. أتمنى لك التوفيق في دراستك. وداعا وداعا!

مع أطيب التحيات، رومان تشيشوف

يقرأ: 130 مرة