正規表現でメールアドレスをブロックしても機能しない

皆様こんにちは、

正規表現による投稿のブロックが機能しなくなっています。RegEx テストツールはメールアドレスを検出していますが、ユーザーはメールアドレスを投稿できてしまいます:

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

これはバグでしょうか?

お手数ですが、ご協力よろしくお願いいたします!

その正規表現に問題があると思います。メールがコンポーザーで単独の行に投稿されていない限り、失敗するようです。Discourse で正規表現をテストする際に、メールアドレス以外のテキスト(例えば、メールアドレスの前にスペースを1つ入れるだけでも)を追加することで、この点を確認できます。

以下は、メールアドレスに対して機能する正規表現の例です:

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

参考までに、この正規表現は以下のサイトで見つけました:How to Find or Validate an Email Address

ありがとうございます!動作しています。次に別の問題です:その正規表現を公開投稿のみに適用することは可能でしょうか?現在は、プライベートメッセージでもメールアドレスを送信できません。これは望ましくない動作です。

いいえ、監視対象単語を公開投稿のみに適用することはできません。その正規表現を設定している場合、ユーザーに正規表現に一致しない方法でメールアドレスを入力してもらう必要があります。例えば、@ 記号の前にスペースを入れるような方法が有効かもしれません。