如何使用javascript或jquery删除多余的空格?

时间:2010-05-24 15:43:48

标签: javascript jquery html

我得到HTML元素包含这个:

  <!--Product Style-->  <div style="float: right; padding-top: 4px; padding-bottom: 5px;">  P6C245RO </div>  <div style="text-transform: uppercase; font-weight: bold; padding-top: 4px; padding-bottom: 5px;">  Style </div>  <div style="clear: both; border-top: 1px solid rgb(216, 216, 216); padding-top: 4px;">  <!--Product Description-->  <div style="font-size: 11px ! important;"></div>  <div style="background: url(&quot;http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif&quot;) no-repeat scroll 0pt 4px transparent; padding-left: 12px;">fine tonal striped fabric</div>  <div style="background: url(&quot;http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif&quot;) no-repeat scroll 0pt 4px transparent; padding-left: 12px;">epaulettes and sleeve tab</div>  <div style="background: url(&quot;http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif&quot;) no-repeat scroll 0pt 4px transparent; padding-left: 12px;">metal logo plate on the chest pocket</div>  

当我使用jquery读取它时,.text()在文本之间包含大量空格和/ n,但没有html标记。

如何删除所有这些空格并使用jquery或纯javascript返回干净的文本?

4 个答案:

答案 0 :(得分:58)

element.text().replace(/\s+/g, " ");

这使用正则表达式(/.../)在整个元素的文本(+中搜索一个或多个(\s)空白字符(g),全局修饰符,它找到所有匹配而不是在第一个匹配后停止)并用一个空格(" ")替换每个匹配。

答案 1 :(得分:18)

对于字符串

"    this  is my   string       "

您可能希望将多余的空格设为单个空格,但完全删除前导和尾随空格。为此,请添加另一个.replace

s.replace(/\s+/g, " ").replace(/^\s|\s$/g, "");

有关

"this is my string"

<强>更新

s.replace(/\s+/g, " ").trim()

谢谢,@ Pier-Luc Gendreau

答案 2 :(得分:4)

您可以删除所有全等空格和新行的实例

// Note: console.log() requires Firebug

var str = '    this  is \n    some text \r don\'t \t you    know?   ';
console.log( str );

str = str.replace( /[\s\n\r]+/g, ' ' );
console.log( str );

然后将其清理并应用到您的jQuery

$.trim( $element.text().replace( /[\s\n\r]+/g, ' ' ) )

答案 3 :(得分:-1)

此代码工作正常,这里我删除了TextEditor中的额外空格。

var htmlstring =   $("#textareaCode").html().replace(/(&nbsp;)*/g, "");

更多Deatils参考:http://www.infinetsoft.com/Post/How-to-remove-nbsp-from-texteditor-in-jQuery/1226#.V0J-2fl97IU