我目前匹配的電子郵件地址與下面的正則表達式(和連接它們作爲mailto
鏈接)的電子郵件地址:鏈接,尚未聯繫
/([a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,64})/
不過,我不希望鏈接任何有前面已經鏈接爲mailto
鏈接或現有的鏈接內,否則該鏈接被相當搞砸了像下面的(如[email protected]):
<a href="mailto:<a href="mailto:[email protected]">[email protected]</a>"><a href="mailto:[email protected]">[email protected]</a></a>
更新
下面是我用找到的電子郵件地址(對不起,沒想到卻是必需的)PHP的一個例子:
$input = "[email protected]<br><br><a href='mailto:[email protected]'>test email</a><br><br><a href='mailto:[email protected]'>[email protected]</a>";
$output = preg_replace("/([a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,64})/i", "<a href='mailto:$1'>$1</a>", $input);
//output
<a href="mailto:[email protected]">[email protected]</a><br><br><a mailto:[email protected]'="" href="mailto:<a href=">[email protected]</a>'>test email<br><br><a mailto:[email protected]'="" href="mailto:<a href=">[email protected]</a>'><a href="mailto:[email protected]">[email protected]</a>
更新2
我也有一個進一步正則表達式的問題(如果可能的話) - 我也有下面的正則表達式,使所有鏈接目標到一個新的窗口,但是,我不想任何東西mailto
鏈接到一個新窗口 - 是否有可能不是目標mailto
鏈接?
$output = preg_replace("/<(a)([^>]+)>/i", "<\\1 target=\"_blank\"\\2>", str_replace('target="_blank"', '', $output));
您需要提供代碼片段,以便實際執行鏈接。簡單的正則表達式模式是不夠的。 –
不認爲這是必需的(因爲正則表達式是正則表達式),現在包括 – MrJ
任何人都可以協助嗎? – MrJ