الفرق بين الاختبار ، EXEC ، طريقة المطابقة في تعبيرات JS العادية
امتحان
يقوم الاختبار بإرجاع Boolean للعثور على وضع الوجود في السلسلة المقابلة.
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "") ؛
تنبيه (reg.test (str)) ؛
exec
يجد Exec وإرجاع نتائج المطابقة الحالية ، ويعود في شكل صفيف.
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "") ؛
var anrr = reg.exec (str) ؛
إذا لم يكن هناك وضع ، يكون ARR فارغًا ، وإلا فإن ARR هو دائمًا مجموعة من الطول 1 ، وقيمتها هي المطابقة الحالية. هناك ثلاث سمات لـ ARR: موضع المطابقة الحالية للمؤشر ؛
تتأثر طريقة EXEC بالمعلمة G. إذا تم تحديد G ، عندما يتم استدعاء Exec في المرة القادمة ، فستبدأ من LastIndex ، الذي تم مطابقة.
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "") ؛
ALERT (reg.exec (str) [0]) ؛
ALERT (reg.exec (str) [0]) ؛
المخرجتان أعلاه هما 1A. انظر الآن إلى المعلمة المحددة G:
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "g") ؛
ALERT (reg.exec (str) [0]) ؛
ALERT (reg.exec (str) [0]) ؛
الإخراج الأول 1A ، الإخراج الثاني 1B.
مباراة
المطابقة هي طريقة كائن السلسلة.
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "") ؛
تنبيه (str.match (reg)) ؛
هذه الطريقة تشبه إلى حد ما exec ، ولكن exec هي طريقة كائن regexp ؛ هناك فرق آخر بين الاثنين ، وهو شرح المعلمة G.
إذا تم تحديد المعلمة G ، فسيعود المباراة إلى جميع النتائج في وقت واحد.
var str = "1a1b1c" ؛
var reg = new regexp ("1." ، "g") ؛
تنبيه (str.match (reg)) ؛
// التنبيهات (str.match (Reg)) ؛
هذه النتيجة هي صفيف مع ثلاثة عناصر ، وهي: 1A ، 1B ، 1C.
غالبًا ما يتم استخدام وظيفتين في JavaScript ، وغالبًا ما يتم استخدامها في التعبيرات العادية.
تطابق exmple
نسخ رمز رمز على النحو التالي:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ؛
var regexp = /[ae] /gi ؛
var rs = str.match (regexp) ؛
// rs = array ('a' ، 'b' ، 'c' ، 'd' ، 'e' ، 'a' ، 'b' ، 'c' ، 'd' ، 'e') ؛
مثال اختبار
نسخ رمز رمز على النحو التالي:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ؛
var regexp = /[ae] /gi ؛
var rs = regexp.test (str) ؛
// روبية = صواب ؛
مثال EXC
نسخ رمز رمز على النحو التالي:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ؛
var regexp = /[ae] /gi ؛
var rs ؛
بينما ((rs = regexp.exec (str))! = null)
{{
document.write (RS) ؛
document.write (regexp.lastindex) ؛
document.write ("<br />") ؛
}
الإخراج
------------------------------------------------- -------------------------------
1
ب 2
ج 3
د 4
ه 5
2 27
ب 28
ج 29
د 30
ه 31
excple آخر
نسخ رمز رمز على النحو التالي:
var regexp = /ab* /g ؛
var str = "abbcdefabh" ؛
var rs ؛
بينما ((rs = regexp.exec (str))! = null)
{{
document.write (RS) ؛
document.write (regexp.lastindex) ؛
document.write ("<br />") ؛
}
الإخراج
------------------------------------------------- -------------------------------
ABB 3
AB 9