1: كيفية إنشاء تعبيرات منتظمة
1. تنسيق النص ، طريقة الاستخدام هي كما يلي:
/نمط/أعلام (أي:/وضع/علامة)
2.RegexP ، طريقة الاستخدام هي كما يلي:
regexp جديد ("نمط" [، "أعلام"]) (أي: regexp جديد ("نمط" [، "مارك"])))
المعلمة:
النمط: النص الذي يمثل التعبير العادي
أعلام (علامة): إذا قمت بتحديد هذا العنصر ، يمكن أن تكون الأعلام واحدة مما يلي:
G: المباراة العالمية (المباراة الكاملة)
أنا: تجاهل الحالة (تجاهل الحالة)
GI: كل من المباراة العالمية وتجاهل الحالة (تطابق جميع القيم الممكنة ، وتجاهل الحالة)
ملاحظة: لا تستخدم علامات الاقتباس لتمييز المعلمات بتنسيق النص ، ولا تستخدم علامات الاقتباس لتمييز معلمات وظيفة مولد Ergou. لذا فإن التعبير التالي
إنه مكافئ:
/ab+c/i ============================== New Regexp ("AB+C" ، "I")
يصف:
عند إنشاء تعبيرات منتظمة باستخدام وظائف المنشئ ، من الضروري استخدام السلاسل العادية لتجنب القواعد (قم بتضمين الأحرف الرائدة/ في السلسلة).
على سبيل المثال ، فإن البيانين التاليين متكافئان:
re = new regexp ("// w+") ؛
إعادة = // w+/
ملاحظة: REGEXP لديه سمة $ مسبقًا
$ 1 ، ... ، 9 $ سمات
تطابق السلسلة الفرعية المرفقة بين قوسين ، إن وجدت.
إنها خاصية regexp
ثابت ، اقرأ فقط
المقدمة في JavaScript 1.2 أو NES 3.0 أو أعلى
الوصف: لأن الإدخال هو خاصية ثابتة ، وليس سمة لكائنات التعبير العادية الفردية. يمكنك الوصول إلى هذا باستخدام regexp.input
ملكية.
لا يحدود عدد الفروع التي يمكن إضافتها مع أقواس ، ولكن يمكن أن تحتفظ كائنات التعبير العادية بالاحتفاظ بالآخر 9. إذا كنت ترغب في الوصول إلى الجميع
سلسلة المطابقة بين قوسين ، يمكنك استخدام الصفيف الذي تم إرجاعه.
<! doctype html public "-// w3c // dtd html 4.0 transitional // en"> <html> <head> <title> مستند جديد </title> <script language = "javaScript1.2"> var regexp = new regexp ((// w+) // s (/w+) ") ؛ str = "جون سميث" ؛ newsstr = str.replace (regexp ، "$ 2") ؛ newsStr2 = str.replace (regexp ، "$ 1") ؛ document.write ("السلسلة الأصلية:"+str+"<br/>") ؛ document.write (newstr+"<br/>") ؛ document.write (NewStr2+"<br/>") ؛ document.write ('$ 1 ='+regexp. $ 1+"$ 2 ="+regexp. $ 2) ؛ </script> </head> <body> </body> </html>2: يمكن أن تسترجع طريقة Match () القيمة المحددة داخل السلسلة ، أو العثور على تطابق مع واحد أو أكثر من التعبيرات العادية. يرجع القيمة المحددة ، وليس موضع السلسلة.
قواعد
StringObject.match (SearchValue)
stringObject.match (regexp) الوصف المعلمة
SearchValue المطلوب. يحدد قيمة السلسلة المراد استردادها.
REGEXP مطلوب. كائن regexp الذي يحدد النمط المطلوب مطابقة. إذا لم تكن المعلمة كائنًا RegexP ، فأنت بحاجة إلى تمريره أولاً إلى مُنشئ RegexP وتحويله إلى كائن RegexP.
قيمة الإرجاع
يخزن صفيف النتيجة المطابقة. تعتمد محتويات هذه الصفيف على ما إذا كان REGEXP لديه العلم العالمي G.
يوضح
تسترجع طريقة Match () سلسلة StringObject للعثور على واحد أو أكثر من نص مطابقة RegexP. يعتمد سلوك هذه الطريقة إلى حد كبير على ما إذا كان REGEXP لديه العلم G.
إذا لم يكن REGEXP يحتوي على Flag G ، فيمكن طريقة Match () فقط تنفيذ تطابق مرة واحدة في StringObject. إذا لم يتم العثور على نص مطابق ، فإن Match () يعود فارغًا. خلاف ذلك ، فإنه يعيد صفيفًا يخزن معلومات حول النص المطابق الذي وجدته.
مثال على استخدام المطابقة:
<! doctype html public "-// w3c // dtd html 4.0 transitional // en"> <html> <head> <title> مستند جديد </title> <script language = "javaScript1.2"> var str = "1 plus 2 equal 3" ؛ var str2 = "11/23/55" ؛ VAR REVENTS = str.match (regexp جديد ("// d+" ، "gi")) ؛ لـ (var i = 0 ؛ i <results.length ؛ i ++) {document.write (النتائج [i]+"<br/>") ؛ } var res = str2.match (regexp جديد ("(// d // d؟)/(// d // d؟)/(// d // d)")) ؛ if (str2.length == res [0] .length) {document.write (res [1]+"<br/>") ؛ document.write (res [2]+"<br/>") ؛ document.write (res [3]+"<br/>") ؛ } </script> </head> <body> </body> </html> دالة datecheck (value) {re = new regexp ("(// d // d؟)/(// d // d؟)/(// d // d)") ؛ var result = value.match (re) ؛ إذا (النتيجة) {if (result [0] .length! = value.length) {Alert ("تنسيق تاريخ الخطأ. يجب أن يكون التنسيق الصحيح mm/dd/yy.") إرجاع false ؛ } آخر {var t = result [3] ؛ var y = parseint ("20" + t) ؛ var m = parseint (النتيجة [1] ، 10) - 1 ؛ var day = parseint (النتيجة [2] ، 10) ؛ var d = تاريخ جديد (y ، m ، day) ؛ if (d.getlyear ()! = y || d.getMonth ()! = m || d.getDate ()! = day) {Alert ("تاريخ الخطأ!") return false ؛ } else {var sm = result [1] .Length == 1؟ '0' + result [1]: result [1] ؛ var sday = النتيجة [2] .Length == 1؟ '0' + نتيجة [2]: النتيجة [2] ؛ var sy = النتيجة [3] ؛ مرة أخرى إرجاع SM + '/' + SDAY + '/' + SY ؛ }}} آخر {Alert ("تنسيق تاريخ الخطأ. يجب أن يكون التنسيق الصحيح mm/dd/yy.") ؛ العودة كاذبة }}