我得到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("http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif") no-repeat scroll 0pt 4px transparent; padding-left: 12px;">fine tonal striped fabric</div> <div style="background: url("http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif") no-repeat scroll 0pt 4px transparent; padding-left: 12px;">epaulettes and sleeve tab</div> <div style="background: url("http://ii.armaniexchange.com/ArmaniExchange/images/en_US/global/globalgraphics/bullet.gif") no-repeat scroll 0pt 4px transparent; padding-left: 12px;">metal logo plate on the chest pocket</div>
当我使用jquery读取它时,.text()
在文本之间包含大量空格和/ n,但没有html标记。
如何删除所有这些空格并使用jquery或纯javascript返回干净的文本?
答案 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(/( )*/g, "");
更多Deatils参考:http://www.infinetsoft.com/Post/How-to-remove-nbsp-from-texteditor-in-jQuery/1226#.V0J-2fl97IU