今天使用nicEdit文本编辑器时,在输入内容应用样式(如加粗B,下划线U),或从其他地方复制内容到该文本编辑器中之后,获取的内容将会是带有这些样式的内容,即加入了html的样式格式,而得不到真正想要的纯文本内容。忙活了半天,我找到了解决办法,就是把取得的内容通过正则表达式把里面的html样式格式代码全过滤掉。现在做一下笔记:
首先,在页面中加入nicEdit,并把其作用于textarea标签上,如下
<div id="sample">
<script type="text/javascript" src="../nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() {
//nicEditors.allTextAreas()
ndPanel = new nicEditor({ fullPanel: true }).panelInstance('ct');
ndinstance = ndPanel.nicInstances[0];
});
</script>
</div>
<textarea id="ct" name="area1" cols="40"></textarea>
<input type="button" οnclick="getCont()" value="getContent"/>
里面有一个获取内容的按钮,在getCont()方法中,取得真正的内容,如下:
<script type="text/javascript"> function getCont(){ var c = ndinstance.getContent(); alert(c); var start_ptn = /(<.[^>]+>)*/gmi; //过滤标签开头 var end_ptn = /<\/?\w+>$/; //过滤标签结束 var space_ptn = /( )*/; //过滤空格 var c1 = c.replace(start_ptn,"").replace(end_ptn).replace(space_ptn,""); alert(c1); } </script>
得到的c1就是过滤之后的纯文本内容。