我正在我的网站上开发一个 contentEditable 区域,用户可以在其中互相键入消息。
<div contentEditable="true" class="smartText">User types here...</div>
问题是,我们将在里面有智能文本,这意味着如果用户@usersame
在这个 div 中输入,如果用户名存在,则@username
应该以蓝色突出显示,如果用户名不存在,则应该以绿色突出显示。当然,所有这些都应该在用户键入时发生......
我不知道从哪里开始,现在我有这个:
$("body").on("keyup",".smartText",function(){
var $this = $(this),
value = $this.html(),
regex = /[^>]#\S+[^ ]/gim;
value = value.replace(regex,"<span style='color:red'>$&</span>");
$this.html(value);
});
但是文本一直在跳跃(以及插入符号的位置)并且感觉方向不正确。我想它有点类似于 JSFiddle,它找到了颜色代码。我基本上想要和 Twitter 一样的东西。
这是一个可以玩的 JSFiddle:http: //jsfiddle.net/denislexic/bhu9N/4/
在此先感谢您的帮助。