我在我的网站上使用快速安全的联系表格。在名称,电话号码,消息等所有字段中,后端允许使用正则表达式。
目前我遇到垃圾邮件问题,收到大量垃圾邮件。我注意到所有收到的邮件都包含一个URL。所以如果我禁止字符串http或http://我认为应该停止垃圾邮件,因为合法邮件永远不会包含URL。
我希望正则表达式的行为如下:如果消息包含http,则不应发送消息。我将在Regex字段中为消息字段输入什么来完成该操作?
答案 0 :(得分:0)
匹配(不区分大小写)仅输入而不用" http"其中的任何地方:
^(?i)(?!.*http).*
如果您想要更精确,请允许"http"
或"https"
,而不是"://"
后跟注:
^(?i)(?!.*https?://).*
这将允许像#34;我们专注于https协议",但仍然阻止链接。
答案 1 :(得分:0)
如果断言对您正在使用的引擎不起作用,则有一个旧的
你可以尝试posix风格的技巧。
这只能防范http:
。如果你想防范http://
添加
为他们增加了两个/
个替换集。
^(?:[^h]|http(?:[^:]|$)|htt(?:[^p]|$)|ht(?:[^t]|$)|h(?:[^t]|$))*$
扩展(看看它是什么)
^
(?:
[^h]
|
http
(?: [^:] | $ )
|
htt
(?: [^p] | $ )
|
ht
(?: [^t] | $ )
|
h
(?: [^t] | $ )
)*
$
如果你的发动机也不支持不区分大小写,那么这个更大的版本
应该管用。
^(?:[^hH]|[hH][tT][tT][pP](?:[^:]|$)|[hH][tT][tT](?:[^pP]|$)|[hH][tT](?:[^tT]|$)|[hH](?:[^tT]|$))*$
扩展
^
(?:
[^hH]
|
[hH] [tT] [tT] [pP]
(?: [^:] | $ )
|
[hH] [tT] [tT]
(?: [^pP] | $ )
|
[hH] [tT]
(?: [^tT] | $ )
|
[hH]
(?: [^tT] | $ )
)*
$