1. طريقة البناء
var reg = new RegExp ( 'd' , 'gi' ) ;
2. الطريقة الحرفية
var reg = / d / gi ;
هناك ثلاثة أنواع من المعدلات: i, g, m
يمكن أن تظهر في نفس الوقت، بدون ترتيب (أي gi
هو نفس ig
)، يرجى الرجوع إلى الإرشادات أدناه
معدل | يوضح |
---|---|
أنا | تجاهل مطابقة الحالة |
ز | المطابقة العالمية، أي مطابقة مباراة واحدة ثم الاستمرار في المطابقة حتى النهاية |
م | المطابقة المتعددة الأسطر، أي أن المطابقة لا تتوقف بعد مواجهة سطر جديد حتى النهاية |
رمز | تأثير |
---|---|
كتغيير في المعنى، أي أن الأحرف بعد "" لا يتم تفسيرها عادةً وفقًا للمعنى الأصلي، على سبيل المثال، /b/ يطابق الحرف "b". /، معنى التغيير هو مطابقة حد الكلمة. أو استعادة أحرف دالة التعبير العادي، مثل " " يطابق الحرف التعريفي الذي يسبقه 0 مرة أو أكثر، /a / سيطابق a، aa، aaa بعد إضافة ""، سيطابق /a*/ فقط "a *". | |
^ | يطابق إدخالاً أو بداية سطر، /^a/ يطابق "an A"، لكنه لا يطابق "An a" |
$ | يطابق إدخالاً أو نهاية السطر، /a$/ يطابق "An a"، لكنه لا يطابق "an A" |
. | يطابق أي حرف منفرد، باستثناء الأسطر الجديدة والإنهاءات |
* | يطابق الحرف السابق 0 مرة أو أكثر، /ba*/ سيطابق b,ba,baa,baaa |
+ | يطابق الحرف السابق مرة واحدة أو أكثر، /ba+/ سيطابق ba، baa، baaa |
؟ | يطابق الحرف الأولي السابق 0 أو 1 مرة، /ba?/ سوف يتطابق مع b,ba |
(خ) | قم بمطابقة x وحفظ x في المتغيرات المسماة $1...$9 |
س | ذ |
{ن} | تطابق بالضبط مرات n |
{ن،} | تطابق n أو أكثر من مرة |
{ن،م} | تطابق مرات نانومتر |
[سيز] | مجموعة الأحرف (مجموعة الأحرف)، تتطابق مع أي حرف (أو حرف أولي) في هذه المجموعة |
[^xyz] | لا يتطابق مع أي حرف في هذه المجموعة |
[من الألف إلى الياء] | أي حرف [] يمكن أن يمثل أي شخص |
[^أز] | ^ بأحرف غير [] تمثل باستثناء |
[ب] | يطابق حرف مسافة للخلف |
ب | تطابق حدود الكلمة |
ب | تطابق كلمة غير الحدود |
cX | هنا، X هو حرف تحكم، /cM/ يطابق Ctrl-M |
د | يطابق حرفًا أبجديًا رقميًا، /d/ = /[0-9]/ |
د | يطابق حرفًا غير أبجدي رقمي، /D/ = /[^0-9]/ |
n | يطابق حرف السطر الجديد |
ص | يطابق حرف العودة |
و | مطابقة تغذية النموذج |
س | يطابق حرف مسافة بيضاء، بما في ذلك n، r، f، t، v، إلخ. |
س | يطابق حرفًا ليس به مسافة بيضاء، ويساوي /[^nfrtv]/ |
ر | تطابق حرف علامة التبويب |
v | يطابق حرف علامة التبويب المزدوجة |
ث | يطابق حرفًا يمكن أن يشكل كلمة (أبجدية رقمية، هذه ترجمتي المجانية، بما في ذلك الأرقام)، بما في ذلك الشرطات السفلية، مثل [w] مطابقة الرقم 5 في "$5.98"، وهو ما يساوي [a-zA-Z0-9 ] |
د | يطابق حرفًا لا يمكنه تكوين كلمة، مثل [W] يطابق $ في "$5.98"، وهو ما يساوي [^a-zA-Z0-9] |
يطابق أحرف NUL |
يتم استخدام التأكيدات ذات العرض الصفري للعثور على الأشياء قبل أو بعد بعض المحتوى (ولكن ليس بما في ذلك هذا المحتوى)، أي أنها تستخدم مثل b,^,$
لتحديد موضع يجب أن يستوفي شروط معينة (أي التأكيدات)، لذلك وتسمى أيضًا تأكيدات العرض الصفري
التأكيد السابق | ويسمى أيضًا التأكيد الأمامي الإيجابي ذو العرض الصفري (?=表达式) وهو ما يعني مطابقة الموضع قبل التعبير | على سبيل المثال، يمكن لـ [az]*(?=ing) مطابقة الطبخ والغناء في غناء الطبخ. |
ملاحظة: خطوات تنفيذ تأكيد البحث الأمامي هي كما يلي: ابحث أولاً عن الحرف الأول من أقصى يمين السلسلة المطلوب مطابقته (أي التعبير الموجود في تأكيد البحث الأمامي) ثم قم بمطابقة التعبير السابق إذا لم يكن ذلك ممكنًا متطابقة، استمر في العثور على الحرف الثاني ثم قم بمطابقة السلسلة قبل الحرف الثاني إذا كانت متطابقة، فقم بالمطابقة
التأكيد الخلفي | يُطلق عليه أيضًا تأكيد ما بعد المراجعة ذو العرض الصفري (?<=表达式) والذي يشير إلى الموضع بعد التعبير المطابق. | على سبيل المثال (?<=abc).* يمكن أن يطابق defg في abcdefg |
ملاحظة: التأكيد المتأخر هو عكس تأكيد النظرة الأمامية تمامًا، وخطوات التنفيذ الخاصة به هي كما يلي: ابحث أولاً عن أول حرف ABC (أي التعبير في تأكيد النظرة الأمامية) من أقصى الطرف الأيسر من السلسلة. متطابق، ثم قم بمطابقة التعبير التالي، إذا لم يكن من الممكن مطابقته، فاستمر في البحث عن ABC الثاني ثم قم بمطابقة السلسلة بعد ABC الثاني إذا كان من الممكن مطابقته، فستتم مطابقته، على سبيل المثال، (?<=abc).*
يمكنه مطابقة defgabc في abcdefgabc بدلاً من abcdefg
تأكيد العرض الصفري السلبي | (?!表达式) يتطابق أيضًا مع موضع بعرض صفر، لكن "التأكيد" في هذا الموضع يأخذ القيمة العكسية للتعبير. على سبيل المثال، يمثل (?!表达式) الموضع قبل التعبير إذا لم يتم الاحتفاظ به ، تطابق هذا الموضع؛ إذا كان التعبير صحيحًا، فهو غير متطابق: وبالمثل، هناك نوعان (?<!表达式) تأكيدات العرض الصفري السالب: "الأول" و"الأخير". (?<!表达式) |
(?<!表达式)
(?!表达式)
استخدم الأقواس لالتفاف السلسلة المطابقة، ثم استخدم التعبير $1 في قيمة الاستبدال للحصول على القيمة المطابقة حاليًا. على سبيل المثال، إذا كان هناك أقواس متعددة، يمكنك استخدام $1، $2، $3 للحصول عليها القيمة المقابلة بعد كل الاستبدالات، هذه هي البيانات التي نريدها أخيرًا.
على سبيل المثال، ما يلي هو تعبير عادي في مربع البحث، والذي يمكن أن يطابق جميع سمات class
في بنية HTML
className = "([^0-9]+)"
ثم يمكننا استبدال
className = { { $1 } }
ثم سوف
className = "xxx" //转化为
className = { { xxx } }
1. الطرق المتعلقة بكائن RegExp
اسم الطريقة | سيناريوهات الاستخدام | قيمة الإرجاع | مثال |
---|---|---|---|
امتحان | تحديد ما إذا كان يتطابق | صحيح أو خطأ | /d/.test('إينو ياو 2019') |
امتحان | إرجاع نتائج مطابقة، مشابهة للمطابقة | صفيف أو فارغة | /d/.exec('إينو ياو 2019') |
2. الأساليب المتعلقة بكائنات السلسلة
اسم الطريقة | سيناريوهات الاستخدام | قيمة الإرجاع | مثال |
---|---|---|---|
مباراة | تقوم بإرجاع النتيجة المطابقة في ظل الظروف غير العامة، وتكون متسقة مع النتيجة التي يتم إرجاعها بواسطة exec وتحتوي على معلومات تشير إلى السلسلة المطابقة. وفي ظل الظروف العامة، يتم إرجاع كافة النتائج المطابقة مرة واحدة. | صفيف أو فارغة | 'إينو ياو 2019'.match(/d/) |
يستبدل | استبدل سلسلة بسلسلة أخرى أو استبدل سلسلة مطابقة عادية بسلسلة فرعية أخرى | صفيف أو فارغة | 'إينو ياو 2019'.replace(/d/, '2019') |
يبحث | ابحث عن موضع السلسلة الفرعية المطابقة الأولى وأرجع قيمة الفهرس، وإلا قم بإرجاع -1 | فِهرِس | 'إينو ياو 2019'.search(/d/, '2019') |
ينقسم | قم بتقسيم المصفوفة وفقًا للسلسلة أو السلسلة المتفق عليها، أو قبول سلسلة أو عادية | فِهرِس | 'إينو ياو 2019'.search(/d/, '2019') |