我正在嘗試創建一個可編輯的div,它會定期檢查與@text
(以@開始並以空格結尾)鍵入的任何文本。鏈接contenteditable div
因此,例如,如果用戶鍵入@text more text here
,它會改變以@開頭的單詞並以空格結束到像div內的<a href="#">@text</a> more text here
這樣的鏈接。
我已經開始用的jsfiddle,但是,我不能得到它的工作:http://jsfiddle.net/MpFXK/2/
HTML:
<div class="box" contenteditable="true"></div>
JS:
$(document).on('keyup', ".box", function() {
var text = $(this).text();
var regexp = /\[email protected]([^\B ]+)/;
if (text.match(regexp)) {
text = text.replace(/\[email protected]([^\B ]+)/, '<a href="#">/\[email protected]([^\B ]+)/</a> ');
return $(this).html(text);
}
return false;
});
請幫幫忙!
你忘了,包括jQuery的在你的jsfiddle,也'\ B'是相反的'\ b',它與字邊界不匹配。替換HTML將重置文本光標位置並打破撤消歷史記錄。此外,當你得到這個工作時,你應該檢查已經替換的'@ text',以避免將它包裝在一個又一個的鏈接。 –
在字符類中放置'\ B'也不會達到你期望的效果。 –