جسد التعبير العادي.
يتم استخدام الرموز الخاصة في التعبيرات العادية. سأقدم أدناه بإيجاز الرموز المختلفة ومعانيها واستخدامها (ملاحظة: "X وما فوق يشمل X"):
/ يشير إلى أن النص الذي يليه هو رمز خاص. مثال: "n" و"n" متطابقان. "/n" هو نفس حرف السطر الجديد.
^ يتزامن مع بداية الإدخال.
$ يطابق نهاية الإدخال.
* إذا كانت الأحرف قبل هذا الرمز هي نفسها 0 مرة أو أكثر، فهي متسقة. مثال: "zo*" يتوافق مع "zoo" و"z".
+ إذا كانت الحروف التي قبل هذا الرمز هي نفسها أكثر من مرة، فهي متسقة. مثال: "zo*" يتوافق مع "zoo"، ولكنه غير متوافق مع "z".
إذا كانت الأحرف قبل هذا الرمز هي نفسها 0 أو 1 مرة، فهي متسقة. مثال: "a?ve؟" يتوافق مع "ve" في "أبدًا".
متوافق مع جميع الأحرف المفردة باستثناء الأسطر الجديدة.
(التعبير العادي) ابحث عن النص المطابق باستخدام التعبير المحدد. إذا وجدت، احفظه. يمكن الحصول على الجزء الثابت من
تم العثور عليه في المصفوفة التي تم الحصول عليها بواسطة طريقة المطابقة.
إذا كان أي واحد من x|yx وy هو نفسه، فسيتم اعتباره متسقًا. مثال: "(z|f)ood" يتوافق مع "zood" و"food".
{n} n عدد صحيح أعلى من 0. إذا كان هو نفس النص السابق n مرات، فإن الاثنين متسقان. مثال: "o" في "o{2}" و"Bob" مختلفان
متوافق مع أول حرفين "o" في "foooood".
{n,} n عدد صحيح أعلى من 0. يجب أن يكون متسقًا مع النص السابق على الأقل n مرات.
{ن،م} كلا الأعداد الصحيحة. الدرجات في النطاق n إلى m متسقة.
يعتبر [xyz] متسقًا إذا كان هو نفسه أي من الأحرف الموجودة بين قوسين مربعين.
[^xyz] هو عكس ما ورد أعلاه.
[az] يعتبر نطاق الأحرف من "a" إلى "z" متسقًا.
[^az] خلافا لما سبق.
/b يشير إلى نهاية الكلمة. مثال: "er/b" يتوافق مع "er" في "أبدًا"، ولكنه غير متوافق مع "er" في "الفعل".
/B يشير إلى نهاية غير الكلمة.
/d يمثل رقماً.
/D لا يعني رقمًا.
/s يعني الفضاء.
/S يعني عدم وجود مسافة.
/w يعني كافة الأحرف الأبجدية الرقمية.
/W يعني ليس كافة الأحرف الأبجدية الرقمية.
أنا (تجاهل حالة الأحرف)
g (البحث عن كافة تكرارات النمط في النص الكامل)
gi (البحث عن النص الكامل، تجاهل حالة الأحرف)
/num num يجب تعيين رقم موجب. قارن مع الجزء المخزن بالفعل. مثال: "(.)/1" هو نفس أي رقمين متتاليين
النص متسق.
2. كيفية تحديد النص الرئيسي للجملة:
الطريقة الأولى: الكتابة مباشرة
var s=/regular Expression/i أو g أو ig
الطريقة الثانية: إنشاء مثيل كائن:
var s=new RegExp(تعبير عادي، i أو g أو ig)
ثلاث طرق تتعلق بالتعبيرات العادية:
1 طريقة التنفيذ
الوصف: البحث ضمن سطر محدد من النص.
الهيكل: Expression.exec العادي (سلسلة).
توضيح: يرجع البحث:
لم يتم استرداد القيمة الفارغة؛
بعد استرجاع النتائج المتسقة؛
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('g','i');
var a=r.exec(s);
تنبيه (أ)؛
</script>
2 طريقة التجميع:
الوصف: تعديل الشكل الداخلي للتمثيل المنتظم.
البنية: Expression.compile العادي ('text'،'g أو i أو ig').
التعليق: ليس هناك الكثير ليقوله.
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
فار أ=s.match(r);
تنبيه (أ)؛
r.compile('[az]','g');
فار أ=s.match(r);
تنبيه (أ)؛
</script>
3 طريقة الاختبار:
الوصف: كما يوحي الاسم، قم بإجراء الاختبارات.
الهيكل: التعبير العادي.اختبار (سلسلة).
التعليق: العودة:
لم يتم العثور على خطأ.
صحيح وجدت؛
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var re=/re/g;
فار msg='return';
var msg1='goon';
تنبيه(re.test(msg));
تنبيه(re.test(msg1));
</script>
4 طريقة الاستبدال:
الوصف: ابحث عن الخيار الثابت واستبدله.
البنية: string.replace (تعبير عادي، سلسلة بديلة).
توضيح: لم يتم تغيير السلسلة وتم إرجاع نسختها.
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
var a=s.replace(/[az]/g,'A');
تنبيه (أ)؛
</script>
5 طريقة المطابقة:
الوصف: إجراء بحث.
البنية: string.match (تعبير عادي).
شرح: إرجاع التسلسل.
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var re=/re/g;
var msg='rererere';
var msg1='goon';
تنبيه (msg.match (إعادة))؛
تنبيه (msg1.match (إعادة))؛
</script>
6 طريقة التقسيم:
الوصف: تقسيم السلسلة.
البنية: String.split (تعبير عادي).
شرح: إرجاع التسلسل.
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s="مرحبًا بهذا العالم الطيب";
فار ص=//s/g;
var a=s.split(p);
تنبيه (أ)؛
</script>
7 طريقة البحث:
الوصف: إرجاع موضع سلسلة متسقة. (هذا أكثر تنوعًا من مؤشر IndexOf!)
البنية: string.search(تعبير عادي).
التعليق: العودة
عدد صحيح موجب إذا وجد
-1 إذا لم يتم العثور عليه
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s="مرحبًا بهذا العالم الطيب";
var p=/good/g;
var a=s.search(p);
تنبيه (أ)؛
</script>
قم بتغيير مثال طريقة الاستبدال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
فار s="hellOSCF";
var r=new RegExp("[AZ]"،"g");
s=s.replace(r,"a");
التنبيه (التنبيهات)
</script>
وأخيرا، هناك سماته المختلفة
1 سمة الفهرس الأخير:
الوصف: تحديد موضع البداية للبحث والحصول على قيمته
الهيكل: التعبير العادي.lastIndex(=القيمة).
التعليق:
عندما يكون lastIndex أكبر من طول النص المسترد، إذا تم تنفيذه باستخدام أساليب الاختبار أو exec، فسيفشل التنفيذ.
تم تعيين الخاصية lastIndex على 0.
عندما يكون lastIndex مساويًا لطول نص البحث، إذا كان نص التعبير فارغًا، فإنه يكون متسقًا.
فشل التنفيذ وأعد التعيين إلى 0.
في حالات أخرى غير ما سبق، سيتم تعيين lastIndex على مؤشر موضع آخر سلسلة نصية متسقة.
2 سمة المصدر
الوصف: إرجاع نص التعبير العادي
الهيكل: التعبير العادي. المصدر
مثال:
مقتطف الكود هو كما يلي:
<النص البرمجي>
var s=/[az]{3}/W/s/g;
var s1=new RegExp("[az]{3}/W"،"g");
تنبيه (s.source)؛
تنبيه (s1.source)؛
</script>
أدناه سأكتب العديد من وظائف معالجة الأحرف:
1 الأرقام ممنوعة منعا باتا
مقتطف الكود هو كما يلي:
فحص الوظيفة (رسالة) {
فار exe=//d/g;
if(exe.test(msg))return(0);
عودة أخرى (1)
}
2 حرف فقط
مقتطف الكود هو كما يلي:
فحص الوظيفة (رسالة) {
فار exe=//W/g;
if(exe.test(msg))return(0);
عودة أخرى (1)؛
}
3 رموز محظورة منعا باتا
مقتطف الكود هو كما يلي:
فحص الوظيفة (رسالة) {
var exe=/<(/w|/W)*>/g;
if(exe.test(msg))return(0);
عودة أخرى (1)؛