مساعدة مع regex في جافا سكريبت
-
05-07-2019 - |
سؤال
لدي هذا النص عينة, التي يتم استردادها من اسم الفئة على عنصر html:
rich-message err-test1 erroractive
rich-message err-test2 erroractive
rich-message erroractive err-test1
err-test2 rich-message erroractive
أنا أحاول أن مباراة "test1"/"test2" البيانات في كل من هذه الأمثلة.أنا حاليا باستخدام التالية regex الذي يطابق "err-test1" نوع من word.أنا لا يمكن معرفة كيفية الحد من هذا البيانات بعد الواصلة(-).
/err-(\S*)/ig
رأسي يؤلمني من ضجيجا ضد هذا الجدار.
المحلول
من ما أنا أقرأ التعليمات البرمجية يعمل بالفعل.
Regex.exec()
بإرجاع مجموعة من النتائج على النجاح.
العنصر الأول في المصفوفة (مؤشر 0) ترجع السلسلة بأكملها ، وبعد كل ()
المغلقة العناصر هي التي دفعت إلى هذه المجموعة.
var string = 'rich-message err-test1 erroractive';
var regex = new RegExp('err-(\S*)', 'ig');
var result = regex.exec(string);
alert(result[0]) --> returns err-test1
alert(result[1]) --> returns test1
نصائح أخرى
هل يمكن أن محاولة "يخطئ - ([^ \ ن \ ص] *) - ولكن هل أنت متأكد من أن هذا هو التعابير المنطقية التي هي المشكلة؟ هل تستخدم نتيجة بأكملها، وليس فقط التقاط الأول؟
والاشياء بعد - يجب أن تكون في مجموعة النتائج. العنصر الأول هو عن النص مطابقة (على سبيل المثال "يخطئ-TEST1") والعناصر القادمة هي مباراة من الأقواس القبض (على سبيل المثال "TEST1").
myregex = /err-(\S*)/ig;
mymatch = myregex.exec("data with matches in it");
testnum = mymatch[1];
وإليك موقع مرجعي .