البحث في النصوص في JavaScript
- الصفحة السابقة JS النصوص
- الصفحة التالية البحث في النصوص JS
تعمل طرق النص على معالجة النصوص.
طرق النص وخصائصه
القيم الأصلية، مثل "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 النصوص.
يحتوي هذا الدليل على وصف وتطبيقات لجميع خصائص النصوص والأساليب.
- الصفحة السابقة JS النصوص
- الصفحة التالية البحث في النصوص JS