日期:2014-05-16  浏览次数:20474 次

可编辑div如何去掉用户通过粘贴复制带进来的html标签
目前有个可编辑div作为发布框,假如用户在网页上粘贴复制,会将html标签一起粘贴到可编辑框里,我想在用户粘贴的时候用js监控粘贴板,先将html标签用正则全部去掉,就是不知道怎么实现,各位知道吗,或者有其它实现方法???

------解决方案--------------------
支持附加的HTML格式本身就是可编辑div提供的高级特性,用以满足TEXTAREA实现不了的功能。既然你不需要,那还不如直接用TEXTAREA来代替DIV。
------解决方案--------------------
有时也会有Lz这种需求。不过现在好用点的编辑器都有一种叫:粘贴无格式文本的,你可以参考一下就是了
试试下面的吧。下面的str就是你获取的粘贴板的内容
JScript code
var str='<div id=aa>1111</div><div id=bb>222</div>\n\n<div id=cc>3333</div>';
var re=/<[^>]+>/g;
str=str.replace(re,"");
alert(str)

------解决方案--------------------
IE核心的好弄,其他浏览器比较难获取剪贴板的内容,默认都不开启js控制剪贴板

你可以参考ckeditor的粘贴功能,弹出一个textarea,粘贴内容到textarea中,按确定后将textarea内容粘贴到编辑器中
------解决方案--------------------
你真是想太多了。你管什么粘贴板做什么。keyup时,执行一次对内容中html标签的替换不就可以呀?
表情你可以采用与html标签不同的方式。比如类似常见的ubb表情的方式:[face]1[/face]
这种方式的表情,使用var re=/<[^>]+>/g;
str=str.replace(re,"");
这个正则是替换不了的,你只不过是替表情制定一种小规则就行了
------解决方案--------------------
探讨
大哥门阿,我要的就是qq空间的效果,表情就是img标签,如果不明白我要的效果,可以去试试qq空间发布框

------解决方案--------------------
负向查找即可
JScript code
   var str = '<img src="1.gif"/><div id=aa>1111</div><div id=bb>222</div>\n\n<div id=cc>3333</div><b>coding123.net</b><ul><li>编程设计网</li></ul>';
    var re = /<(?!(\/?div|\/?span|\/?b|\/?p|\/?img))[^>]+>/ig; //要保留其他标签修改这里
    str=str.replace(re,"");
    alert(str)