日期:2014-05-17  浏览次数:20609 次

在nicEdit中通过过滤html标签获取纯文本内容

? ? ?今天使用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" onclick="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 = /(&nbsp;)*/;			//过滤空格
		var c1 = c.replace(start_ptn,"").replace(end_ptn).replace(space_ptn,"");
		alert(c1);
	}
	</script>
?

得到的c1就是过滤之后的纯文本内容。