البحث في النصوص في JavaScript

تعمل طرق النص على معالجة النصوص.

طرق النص وخصائصه

القيم الأصلية، مثل "Bill Gates"، لا يمكنها امتلاك الطرق والخصائص ( لأنها ليست مواقع ).

لكن يمكن استخدام الطرق والخصائص أيضًا مع القيم الأصلية، لأن JavaScript يعتبر القيم الأصلية كمواقع عند تنفيذ الطرق والخصائص.

طول النص

length يستعيد الخاصية طول النص:

مثال

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

جرب بنفسك

البحث عن نص داخل نص

indexOf() يستعيد الطريقة النص المحدد داخل النصأولموقع الظهور (الموقع):

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

جرب بنفسك

يبدأ JavaScript في حساب المواقع من الصفر.

0 هو الموقع الأول في النص، 1 هو الموقع الثاني، 2 هو الموقع الثالث...

lastIndexOf() يستعيد الطريقة النص المحدد في النصآخرموقع الظهور مرة واحدة:

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

جرب بنفسك

إذا لم يتم العثور على النص، indexOf() و lastIndexOf() يعود كلاهما بـ -1.

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

جرب بنفسك

كلا الطريقتين يستقبلا المعامل الثاني كمعامل البداية للبحث.

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

جرب بنفسك

lastIndexOf() يبحث الطريقة للوراء (من نهاية النص إلى بدايته)، مما يعني: إذا كان المعامل الثاني هو 50، فإن البحث يبدأ من الموقع 50 حتى بداية النص.

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

جرب بنفسك

البحث عن نص داخل نص

search() يبحث الطريقة عن قيمة معينة في النص ويعود بموقع التطابق:

مثال

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

جرب بنفسك

هل لاحظت؟

هذه الطريقتين،indexOf() و search()، هيالمساواة.

هذه الطريقتان ليست متساويتين. الفرق بينهما:

  • طريقة search() لا يمكنها تعيين parameter البداية الثانى.
  • طريقة indexOf() لا يمكنها تعيين القيم البحثية القوية (التعبيرات النمطية).

ستتعلم هذه القيم البحثية القوية فيعاديللتعرف على هذه القيم البحثية القوية.

استخراج جزء من النص

هناك ثلاث طرق لاستخراج جزء من النص:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

طريقة slice()

slice() استخراج جزء من النص وإرجاع الجزء المستخرج في نص جديد.

هذه الطريقة تضيف parameterين: index البداية (موضع البداية)، index النهاية (موضع النهاية).

هذا المثال يقوم بقطع جزء النص من موضع 7 إلى موضع 13:

مثال

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

结果是 res:

Banana

جرب بنفسك

إذا كان parameter سالباً، فإنه يتم حسابه من نهاية النص.

هذا المثال يقوم بقطع جزء النص من موضع -12 إلى موضع -6:

مثال

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

结果是 res:

Banana

جرب بنفسك

إذا تم تمرير parameter الثانى بدون تحديد، فإن هذه الطريقة ستقوم بقطع الجزء المتبقي من النص:

مثال

var res = str.slice(7);

جرب بنفسك

أو يمكن حسابها من نهاية النص:

مثال

var res = str.slice(-13);

جرب بنفسك

إشارة:لا يتم تطبيق positions سالبة في إصدارات Internet Explorer 8 وكلها.

طريقة substring()

substring() مثل slice().

الفرق بينه وبين substring() لا يمكن قبول indexes سالبة.

مثال

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

结果是 res:

Banana

جرب بنفسك

إذا تم تمرير parameter الثانى بدون تحديد، فإن هذه substring() قطع الجزء المتبقي من النص.

طريقة substr()

substr() مثل slice().

الفرق بينه وبين parameter الثانى هو تحديد الجزء الذي سيتم استخراجه.الطول.

مثال

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

结果是 res:

Banana

جرب بنفسك

إذا تم تمرير parameter الثانى بدون تحديد، فإن هذه substr() ستقوم بقطع الجزء المتبقي من النص.

مثال

var str = "Apple, Banana, Mango";
var res = str.substr(7);

جرب بنفسك

结果是 res:

Banana, Mango

إذا كان الأول parameter سالباً، فإنه يتم حساب الموضع من نهاية النص.

مثال

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

جرب بنفسك

结果是 res:

Mango

لا يمكن أن يكون الثانى parameter سالباً، لأنه يحدد الطول.

استبدال محتوى النص

replace() استبدال القيمة الأخرى بموضع محدد في النص:

مثال

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");

جرب بنفسك

replace() الطريقة لا تقوم بتغيير السلسلة التي يتم استدعاؤها. إنها تعود إلى سلسلة جديدة.

بالافتراض،replace() يتم استبدال التوافق الأول فقط:

مثال

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

جرب بنفسك

بالافتراض،replace() حساس للصغر والكبير. لذلك لا يتم استبدال التوافق MICROSOFT:

مثال

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

جرب بنفسك

لإجراء استبدال غير حساس للصغر والكبير، استخدم تعبير النصوص العادية /iغير حساس للصغر والكبير (بالإنجليزية: case-insensitive):

مثال

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

جرب بنفسك

لا تضيف قوائم للتعبيرات النمطية. إنها بدون قوائم.

لإجراء استبدال جميع التوافقات، استخدم خاصية التعبيرات النمطية g العلامات (للبحث الكامل):

مثال

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

جرب بنفسك

ستتعلم المزيد عن تعبيرات النصوص العادية في هذا الفصل من تعبيرات النصوص العادية في JavaScriptعاديالمحتوى.

التحويل إلى كبر وكبير الحروف

من خلال toUpperCase() تحويل السلسلة إلى كبر الحروف:

مثال

var text1 = "Hello World!";       // سلسلة
var text2 = text1.toUpperCase();  // text2 هو النسخة المحولة إلى كبر الحروف من text1

جرب بنفسك

من خلال toLowerCase() تحويل السلسلة إلى صغر الحروف:

مثال

var text1 = "Hello World!";       // سلسلة
var text2 = text1.toLowerCase();  // text2 هو النسخة المحولة إلى صغر الحروف من text1

جرب بنفسك

طريقة concat()

concat() الانضمام إلى سلسلة من اثنتين أو أكثر من السلاسل:

مثال

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

جرب بنفسك

concat() يمكن استخدام الطريقة لاستبدال مشغلات الجمع. السطرين التاليين متساويان:

مثال

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

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

بشكل رسمي: السلسلة غير قابلة للتغيير: لا يمكن تعديل السلسلة، بل يمكن استبدالها.

String.trim()

trim() تُستخدم هذه الدالة لإزالة المسافات من بداية ونهاية النص:

مثال

var str = "       Hello World!        ";
alert(str.trim());

تحذير:Internet Explorer 8 أو أقدم لا يدعم trim() دالة.

جرب بنفسك

لدعم IE 8، يمكنك استخدام النمط باستخدام النمط replace() بديلاً عن:

مثال

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

جرب بنفسك

يمكنك أيضًا استخدام الخططة السابقة لإضافة دالة trim إلى JavaScript String.prototype:

مثال

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

جرب بنفسك

استخراج حروف النص

هذه هي اثنتان من استخراج حروف النص:آمندالة:

  • charAt(position)
  • charCodeAt(position)

دالة charAt()

charAt() تُستخدم دالة بحرفية للعودة إلى النص في الموقع المحدد (الموقع):

مثال

var str = "HELLO WORLD";
str.charAt(0);            // يعود H

جرب بنفسك

دالة charCodeAt()

charCodeAt() ي返回 النص Unicode الت编码 للحرف في الموقع المحدد من النص:

مثال

var str = "HELLO WORLD";
str.charCodeAt(0);         // يعود 72

جرب بنفسك

وصول الخصائص (Property Access)

ECMAScript 5 (2009) يسمح بالوصول إلى خصائص النص [ ]:

مثال

var str = "HELLO WORLD";
str[0];                   // يعود H

جرب بنفسك

استخدام الوصول إلى الخصائص ليس موثوقًا به جدًا:

  • ليس مناسبًا لأجهزة Internet Explorer 7 أو أقدم
  • إنه يجعل النص يبدو كأنه مصفوفة (لكن ليس كذلك)
  • إذا لم يتم العثور على حرف،[ ] يعود undefined، و charAt() يعود نص فارغ.
  • إنه قابل للقراءة فقط.str[0] = "A" لا يحدث خطأ (لكن لن يعمل)!

مثال

var str = "HELLO WORLD";
str[0] = "A";             // لا يحدث خطأ، لكنه لن يعمل
str[0];                   // يعود H

جرب بنفسك

إشارة:إذا كنت ترغب في معالجة النص كتمثيل، يمكنك تحويله إلى مجموعة أولاً.

تحويل النص إلى مجموعة

يمكن split() تحويل النص إلى مجموعة:

مثال

var txt = "a,b,c,d,e";   // نص
txt.split(",");          // تقسيم باستخدام virgule
txt.split(" ");          // تقسيم باستخدام مسافة
txt.split("|");          // تقسيم باستخدام شرطة

جرب بنفسك

إذا تم تجاهل الحرف المفصول، سيكون التمثيل الذي يتم إرجاعه يحتوي على الكلمة بأكملها في الموقع [0].

إذا كان الحرف المفصول هو "\"، سيكون التمثيل الذي يتم إرجاعه هو تمثيل يحتوي على حروف منفصلة:

مثال

var txt = "Hello";       // نص
txt.split("\" ");           // تقسيم إلى حروف

جرب بنفسك

مرجع String الكامل

للحصول على دليل مرجعي كامل، يرجى زيارة مرجع JavaScript النصوص.

يحتوي هذا الدليل على وصف وتطبيقات لجميع خصائص النصوص والأساليب.