正则表达式 - 阻止垃圾邮件

时间:2010-03-12 08:30:15

标签: php regex

有人可以引导我找到一个正则表达式来阻止逗号分隔的垃圾邮件单词列表吗?

正则表达式需要将字符串与我已有的垃圾邮件单词列表匹配。

不重要,但我使用的是PHP。

3 个答案:

答案 0 :(得分:7)

试试这个:

 \b(word1|word2|...)\b

\b将匹配单词字符和非单词字符(如果单词显示为较长单词的一部分,则表达式将不匹配)。

答案 1 :(得分:2)

您可以通过将逗号替换为|并添加圆括号和字边界来生成与您列出的垃圾字匹配的任何内容匹配的正则表达式。

如果您的垃圾邮件列表为"spam1,spam2,spam3",则您的正则表达式为"\b(spam1|spam2|spam3)\b"

答案 2 :(得分:0)

您可以使用JavaScript来阻止用户提交垃圾邮件数据。如:

var spam_words = ["word1", "word2", "word3"];
var regex = new RegExp(spam_words.join("|"));

if(regex.test(form_data_you_wanna_test)){
    // stop submit
}else{
    // submit
}