如何阻止在input邮箱输入框中输入qq.com?
阻止QQ邮箱通过邮件表单提交垃圾邮件的解决方案
嘿,我懂你被垃圾发送者用QQ邮箱刷表单的困扰了,刚好可以通过修改你现有的正则表达式直接拦截这类域名。
先看看你原来的代码:
<input type="email" class="text" name="i_mail" pattern="^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" value="" >
我们只需要在正则里加入一个负向先行断言,就能把所有qq.com结尾的邮箱排除在外。修改后的代码如下:
<input type="email" class="text" name="i_mail" pattern="^[a-z0-9._%+-]+@(?!qq\.com$)[a-z0-9.-]+\.[a-z]{2,3}$" value="" >
正则逻辑说明
(?!qq\.com$)是核心部分:它会检查邮箱的域名部分不是以qq.com结尾,完美拦截所有xxx@qq.com格式的提交。- 同时保留了你原有的邮箱格式验证规则,其他合法邮箱(比如gmail、outlook等)依然可以正常提交。
重要补充提醒
前端验证只是基础防护,垃圾发送者很容易通过修改前端代码绕过这个限制。所以一定要在后端逻辑里也加上同样的域名过滤,还可以搭配这些措施增强防护:
- 限制同一IP的提交频率
- 加入验证码验证(比如简单的图形验证码或行为验证)
- 对提交的内容做垃圾关键词检测
内容的提问来源于stack exchange,提问作者Rin Seo




