消除标签之间的任何空间

时间:2015-02-26 14:40:10

标签: jquery

如何使用jQuery消除标签之间的任何空间?

这有效:replace(/ /g, '') 但我正在寻找能找到任何空间的更通用的东西。我留下了评论中的一些我尝试过但不起作用的东西。如果有人能够解释为什么这些选项不能消除标签之间的空间和一种方法,我将不胜感激。

$("#tot").click(function() {
		
var content = $('#tot').html();
//var clean = content.replace(/\s+/g, ''); //no
//var clean = content.replace(/\n|\r/g, ""); //no
//var clean = content.replace(/ \>[\n\t ]+\< /g, ''); //no
var clean = content.replace(/&nbsp;/g, ''); // yes but it is not any space 
$('#tot').html( clean );
			
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tot" contenteditable="true"> 
    <h1> Some title </h1>
    &nbsp; &nbsp; &nbsp;   	
    <h2> Some h2 </h2>
</div>

1 个答案:

答案 0 :(得分:0)

\s代表&#34;空白&#34;在正则表达式。尝试使用\s*替换所有空格。我不确定这是否会捕获&nbsp;,所以你可以这样做:

var clean = content.replace(/(&nbsp|\s)*;/g, '')

用空字符串替换所有空格或&nbsp;

要替换标签,你可以使用下面的正则表达式,但正如@Veverke所说,你应该研究一个更强大的html缩小,因为这不是万无一失的

/>(&nbsp;|\s)*</