我使用以下代码使电子邮件地址可点击:
function makeemail($str) {
$str = preg_replace('/([\!~#$%&=?^*\/_\.\+0-9a-zæøå-]+)@(([0-9a-zæøå-]+\.)+[a-z]{2,12})/i', '<a href="mailto:$1@$2" title="">$1@$2</a>', $str);
return trim($str);
}
该怎么办,它会忽略其中包含“ http://”和“ https://”的文本?(或简单地说,可能只是“ http”)< / p>
某些http服务器url的地址中可以带有@,而我正在处理其他函数中的http url。
我有点正则表达式。我尝试添加带有和不带有括号的?!http:\/\/
或?!https?:\/\/
,但是它不起作用,而且超出了我的范围/确切地放置它的范围。
emailaddress@example.com
-它应该变成<a href="mailto:email@address.com" title="">email@address.com</a>
(非常完美)
http://userid:password@example.com:8080/
-应该忽略它,因为它包含http(s)://
)