حظر عنوان البريد الإلكتروني باستخدام التعبير العادي لا يعمل

مرحبًا بالجميع،

لم يعد حظر المنشورات باستخدام التعبيرات النمطية يعمل. أداة اختبار RegEx تجد عنوان البريد الإلكتروني هذا، لكن المستخدمين ما زالوا قادرين على نشر عناوين البريد الإلكتروني:

RegEx: (^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

هل هذه مشكلة؟

شكرًا جزيلاً على مساعدتكم!

أعتقد أن هناك مشكلة في التعبير النمطي (regular expression) هذا. يبدو أنه سيفشل ما لم يُنشر عنوان البريد الإلكتروني على سطر مستقل في المحرر. يمكنك تأكيد ذلك بإضافة بعض النص غير عنوان البريد الإلكتروني عند اختبار التعبير النمطي في Discourse. حتى مجرد إضافة مسافة قبل عنوان البريد الإلكتروني ستسبب فشله.

إليك تعبيرًا نمطيًا يجب أن يعمل لعناوين البريد الإلكتروني:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

للمرجعية، وجدت هذا التعبير النمطي هنا: How to Find or Validate an Email Address.

شكرًا لك! هذا يعمل الآن. لكن هناك مشكلة أخرى: هل من الممكن استخدام تعبير النمط هذا للمشاركات العامة فقط؟ حاليًا، لا يمكن إرسال عناوين البريد الإلكتروني عبر الرسائل الخاصة أيضًا. هذا سلوك غير مرغوب فيه.

لا، لا يمكن تطبيق الكلمات المراقبة على المشاركات العامة فقط. مع وجود هذا التعبير العادي، ستحتاج إلى توجيه المستخدمين لإدخال عناوين البريد الإلكتروني بطريقة لا يتطابق معها التعبير العادي. ربما إضافة مسافة قبل رمز @ قد تكون حلاً.