查找字符串是否包含网址的最佳方法是什么?
我正在写一个聊天框,需要拒绝在其中发布网址...
if(preg_match('/[a-zA-Z]+:\/\/[0-9a-zA-Z;.\/?:@=_#&%~,+$]+/', $clean_message, $matches))
{
die('INVALID!');
}
似乎为包含http://的网址提供了诀窍,但我还需要能够拒绝youtube.com等网址以及是否发布了ipaddress等。
我需要保持聊天框免受用户垃圾邮件的干扰!
答案 0 :(得分:3)
你可以做的最好的事情可能是:
/[\w\d\.]+\.(com|org|ca|net|uk)/
并添加所有其他常见后缀。做类似的事情:
/[\w\d\.]+\.[\w\d]{1,3}/
可能过于通用,但会抓住几乎任何看似URL的东西。