تعبيرات جافا سكريبت العادية
التعبير العادي هو سلسلة من الأحرف التي تشكل نمط بحث.
يمكن استخدام نمط البحث للبحث عن النص وعمليات استبدال النص.
ما هو التعبير العادي؟
التعبير العادي هو سلسلة من الأحرف التي تشكل نمط بحث .
عندما تبحث عن بيانات في نص ، يمكنك استخدام نمط البحث هذا لوصف ما تبحث عنه.
يمكن أن يكون التعبير العادي حرفًا واحدًا أو نمطًا أكثر تعقيدًا.
يمكن استخدام التعبيرات العادية لإجراء جميع أنواع عمليات البحث عن النص واستبدال النص .
بناء الجملة
/pattern/modifiers;
مثال
/w3schools/i;
شرح المثال:
/ w3schools / i هو تعبير عادي.
w3schools هو نمط (يستخدم في البحث).
i هو معدل (يعدل البحث ليكون غير حساس لحالة الأحرف).
باستخدام طرق السلسلة
في JavaScript ، غالبًا ما تُستخدم التعبيرات العادية مع طريقتي السلسلة : search()
و replace()
.
تستخدم search()
الطريقة تعبيرًا للبحث عن تطابق ، وتقوم بإرجاع موضع التطابق.
تقوم replace()
الطريقة بإرجاع سلسلة معدلة حيث يتم استبدال النمط.
باستخدام بحث سلسلة () بسلسلة
تبحث الطريقة search()
في سلسلة لقيمة محددة وتعيد موضع المطابقة:
مثال
استخدم سلسلة للبحث عن "W3schools" في سلسلة:
let text = "Visit W3Schools!";
let n = text.search("W3Schools");
ستكون النتيجة في n :
6
استخدام بحث سلسلة () مع تعبير عادي
مثال
استخدم تعبيرًا عاديًا لإجراء بحث حساس لحالة الأحرف عن "w3schools" في سلسلة:
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
ستكون النتيجة في n :
6
باستخدام String ، replace () مع سلسلة
يستبدل الأسلوب replace()
قيمة محددة بقيمة أخرى في سلسلة:
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
استخدم String replace () بتعبير عادي
مثال
استخدم تعبيرًا عاديًا غير حساس لحالة الأحرف لاستبدال Microsoft بـ W3Schools في سلسلة:
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");
ستكون النتيجة في الدقة :
Visit W3Schools!
هل لاحظت؟
يمكن استخدام وسيطات التعبير العادي (بدلاً من وسيطات السلسلة) في الطرق أعلاه.
يمكن أن تجعل التعبيرات العادية بحثك أكثر قوة (على سبيل المثال غير حساس لحالة الأحرف).
معدِّلات التعبير العادي
يمكن استخدام المُعدِّلات لإجراء المزيد من عمليات البحث الشاملة غير الحساسة لحالة الأحرف:
Modifier | Description | Try it |
---|---|---|
i | Perform case-insensitive matching | |
g | Perform a global match (find all matches rather than stopping after the first match) | |
m | Perform multiline matching |
أنماط التعبير العادي
تستخدم الأقواس للبحث عن مجموعة من الأحرف:
Expression | Description | Try it |
---|---|---|
[abc] | Find any of the characters between the brackets | |
[0-9] | Find any of the digits between the brackets | |
(x|y) | Find any of the alternatives separated with | |
الحروف الأولية هي أحرف لها معنى خاص:
Metacharacter | Description | Try it |
---|---|---|
\d | Find a digit | |
\s | Find a whitespace character | |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
|
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
محددات الكميات تحدد الكميات:
Quantifier | Description | Try it |
---|---|---|
n+ | Matches any string that contains at least one n | |
n* | Matches any string that contains zero or more occurrences of n | |
n? | Matches any string that contains zero or one occurrences of n |
استخدام كائن RegExp
في JavaScript ، كائن RegExp هو كائن تعبير عادي بخصائص وطرق محددة مسبقًا.
باستخدام الاختبار ()
الطريقة test()
هي طريقة تعبير RegExp.
يبحث في سلسلة عن نمط ، ويعيد صح أو خطأ ، اعتمادًا على النتيجة.
يبحث المثال التالي عن سلسلة للحرف "e":
مثال
const pattern = /e/;
pattern.test("The best things in life are free!");
نظرًا لوجود حرف "e" في السلسلة ، سيكون ناتج الشفرة أعلاه:
true
لا يتعين عليك وضع التعبير النمطي في متغير أولاً. يمكن اختصار السطرين أعلاه إلى سطر واحد:
/e/.test("The best things in life are free!");
باستخدام exec ()
الطريقة exec()
هي طريقة تعبير RegExp.
يبحث في سلسلة عن نمط محدد ، ويعيد النص الموجود ككائن.
إذا لم يتم العثور على تطابق ، فإنه يقوم بإرجاع كائن فارغ (فارغ) .
يبحث المثال التالي عن سلسلة للحرف "e":
مثال
/e/.exec("The best things in life are free!");
مرجع RegExp الكامل
للحصول على مرجع كامل ، انتقل إلى مرجع JavaScript RegExp الكامل .
يحتوي المرجع على أوصاف وأمثلة لجميع خصائص وطرق RegExp.