大佬教程收集整理的这篇文章主要介绍了Jquery / Javascript – 语法高亮显示在contentEditable区域中的用户类型,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<div contentEditable="true" class="smartText">User types here...</div>
事情是,我们将内置智能文本,这意味着如果用户在此div内部输入@usersame,如果用户名存在,则@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/
在此先感谢您的帮助.
= updatED =
代码:
[...] // formatText formatText: function (el) { var savedSel = Helper.saveSELEction(el); el.innerHTML = el.innerHTMl.replace(/<span[\s\S]*?>([\s\S]*?)<\/span>/g,"$1"); el.innerHTML = el.innerHTMl.replace(/(@[^\s<\.]+)/g,Helper.highlight); // Restore the original SELEction Helper.restoreSELEction(el,savedSel); } [...] // point keyup: function(E){ // format if key is valid if(Helper.keyIsAvailable(E)){ Helper.formatText($this[0]); } // delete blank html elements if(Helper.keyIsdelete && $this.text()=="") { $this.html(""); } }
截图:
JSfiddle这里:http://jsfiddle.net/hayatbiralem/9Z3Rg/11/
需要外部资源:
> http://dl.dropboxusercontent.com/u/14243582/jscalc/js/rangy-core.js
> http://dl.dropboxusercontent.com/u/14243582/jscalc/js/rangy-selectionsaverestore.js
助手问题(谢谢):replace innerHTML in contenteditable div
正则表达式测试工具(谢谢):http://www.pagecolumn.com/tool/regtest.htm
以上是大佬教程为你收集整理的Jquery / Javascript – 语法高亮显示在contentEditable区域中的用户类型全部内容,希望文章能够帮你解决Jquery / Javascript – 语法高亮显示在contentEditable区域中的用户类型所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。