Exec هي وسيلة للتعبيرات العادية ، وليس طريقة للسلاسل ، ومعلماتها سلاسل ، كما هو موضح أدناه:
var re = new regexp (// d/) ؛ re.exec ("ABC4DEF") ؛ // أو استخدم نمط perl: //d/.exec ("ABC4DEF") ؛ // المطابقة هي الطريقة التي توفرها فئة السلسلة. معلماتها هي كائنات التعبير العادية. الاستخدام التالي صحيح: "ABC4DEF" .Match (/D) ؛صفيفات الإعداد والمباراة
إذا لم يتم تجميع التعبير العادي الذي ينفذ طريقة EXEC (بدون قوسين) ، فإذا كانت هناك تطابق ، فسوف يعيد صفيفًا بعنصر واحد فقط ، والعنصر الوحيد من هذه الصفيف هو السلسلة الأولى التي يتطابق معها التعبير العادي ؛ إذا لم يكن هناك تطابق ، فسوف يعود فارغة.
وظائف التنبيه التالية هي المعلومات المنبثقة هي نفسها:
var str = "cat ، hat" ؛ var p =/at/؛ // لا يوجد تنبيه سمة G (P.Exec (STR)) تنبيه (str.match (p))
كلهم "في". في هذه الحالة ، تعادل EXEC.
ومع ذلك ، إذا كان التعبير العادي متطابقًا عالميًا (سمة G) ، فسيكون الرمز أعلاه نتائج مختلفة:
var str = "cat ، hat" ؛ var p =/at/g ؛ // لاحظ تنبيه السمة G (P.Exec (STR)) (str.match (p))
هم
"في"
"في ، في".
نظرًا لأن EXEC سترجع دائمًا المباراة الأولى فقط ، وستعود Match جميع المباريات عندما يتم تحديد سمة G بانتظام.
إذا وجدت Exec تطابقًا ويحتوي على مجموعة ، فسيتضمن الصفيف الذي تم إرجاعه عناصر متعددة. العنصر الأول هو المباراة التي تم العثور عليها ، والعناصر اللاحقة هي المجموعات الأولى ، الثانية في المباراة (المرجع العكسي)
سوف يظهر الكود التالي "CAT2 ، AT":
var str = "cat2 ، hat8" ؛ var p =/c (at)/d/؛ Alert (p.exec (str))
العنصر الأول هو سلسلة المطابقة "CAT2" ، والعنصر اللاحق هو المطابقة "في" بين قوسين.
سوف تتداخل وظيفة المطابقة مع الشروط التالية وتحقق نفس وظيفة EXEC:
1. التعبير العادي يحتوي على مجموعات (قوسين)
2. إرجاع المباراة الفريدة
دعونا نلقي نظرة على الكود التالي:
var str = "cat2 ، hat8" ؛ var p =/c (at)/d/؛ Alert (p.exec (str)) تنبيه (str.match (p))
سوف تظهر رسالة "CAT2 ، AT". هل تعتقد أنه غريب جدا؟
تلخيص:
Match عبارة عن صفيف يعيد جميع الأوتار المطابقة ، ولكن يجب على التعبير العادي تحديد سمة G العالمية لإرجاع جميع المباريات. إذا لم يتم تحديد سمة G ، فسيتم إرجاع مجموعة مع عنصر واحد فقط.
تقوم EXEC دائمًا بإرجاع المعلومات المتعلقة بالمباراة الأولى ، والتي تُرجع المصفوفة بما في ذلك سلسلة المطابقة الأولى ، Backreferences إلى جميع الحزم.
في بعض الحالات ، تكون النتيجة التي تم إرجاعها بواسطة EXEC هي نفس النتيجة التي تم إرجاعها بواسطة المباراة:
var str = "cat ، hat" ؛ var p =/at/؛ // لا يوجد تنبيه سمة G (P.Exec (STR)) تنبيه (str.match (p))
"في" الملوثات العضوية الثابتة
في بعض الحالات ، تكون النتيجة التي تم إرجاعها بواسطة المباراة هي نفس النتيجة التي تم إرجاعها بواسطة EXEC:
var str = "cat2 ، hat8" ؛ var p =/c (at)/d/؛ Alert (p.exec (str)) تنبيه (str.match (p))
"CAT2 ، في" الملوثات العضوية الثابتة
المقال أعلاه تحليل متعمق لطرق EXEC وطرق المطابقة في JavaScript هو كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.