使用正则表达式阻止电子邮件地址无效

大家好,

使用正则表达式阻止帖子发布的功能已不再有效。正则表达式测试工具能够检测到该电子邮件地址,但用户仍然可以发布电子邮件地址:

正则表达式: (^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

这是一个错误吗?

非常感谢您的帮助!

我认为该正则表达式存在问题。看起来除非邮件地址在编辑器中单独成行,否则它会匹配失败。你可以通过在 Discourse 上测试该正则表达式时添加一些非邮件地址的文本(例如在邮件地址前加一个空格)来验证这一点,这将导致匹配失败。

以下是适用于邮件地址的正则表达式:

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

供参考,我在此处找到了该正则表达式:https://www.regular-expressions.info/email.html。

谢谢!这已经生效了。现在还有一个问题:能否仅对公开帖子使用那个正则表达式?目前,通过私信发送邮件地址也不行,这是一个令人遗憾的行为。

不行,无法仅将受监视的词语应用于公开帖子。在使用该正则表达式的情况下,您需要引导用户以不会被该正则表达式匹配的方式输入电子邮件地址。例如,在 @ 符号前添加一个空格或许可行。