編輯:例正則表達式/ str_replace函數:問題與郵寄地址和笑臉組合
當用戶進入[email protected],可見結果變成:
[email protected]" class="small">[email protected]
但如果用戶輸入的郵件@ example.no,可見的結果就是:[email protected],並且它變成了一個鏈接。當用戶點擊鏈接時,它會提示他們的計算機上爲本地電子郵件程序和收件人字段是自動填充[email protected]
這個問題我有
我正在一個網站上用戶可以評論彼此的網頁,我正在使用str_replace和正則表達式來替換網址爲可點擊的網址,標籤爲「可點擊標籤」,笑臉代碼(:P,:S,:D )到圖像等
但是,當我嘗試將電子郵件轉換爲與preg_replace郵件,我的「舌頭」-smiley(:P )打破它:
// MAILTO
$text = preg_replace('/(\[email protected]\S+\.\S+)/', '<a href="mailto:$1" class="small">$1</a>', $text);
// SMILEY
$text = str_replace(':P', '<img src="images/smileys/tongue.png" class="smiley" alt=":P" />', $text);
如果用戶輸入的電子郵件以字母開頭「P」,這個mailto休息,我基本上是擰。
字符串輸入:
<a href='mailto:[email protected]'>[email protected]</a>
變爲:
<a href='mailto[SMILEY][email protected]'>[email protected]</a>
一個明顯的解決方法當然是改變笑臉代碼(:P)轉換成別的東西,或根本就沒有創造可點擊的電子郵件。但是「:P」被用戶廣泛使用和使用,所以這是用戶體驗的問題。另外我還有其他的表情,比如「:S」等,所以我希望找到一個簡單實用的解決方案。
任何幫助將不勝感激!
請更新與實例,投入和預期產出您的文章。 –
謝謝,我現在增加了一個例子 – kimnthorstensen
可以說你有這個'[email protected]:p',你想結束':p'應該被替換而不是':p'進入href屬性。這樣對嗎? –