在使用 jQuery 抓取文本时如何去除空白?

我想使用 jQuery 将 mailto: 锚包装在一个电子邮件地址周围,但它也抓住了 CMS 正在生成的空白。

下面是我必须处理的 HTML、我拥有的脚本和输出的副本。

超文本标示语言

<div class="field field-type-text field-field-email">
<div class="field-item">
name@example.com    </div>
</div>

JQuery JavaScript

$(document).ready(function(){
$('div.field-field-email .field-item').each(function(){
var emailAdd = $(this).text();
$(this).wrapInner('<a href="mailto:' + emailAdd + '"></a>');
});
});

生成的 HTML

<div class="field field-type-text field-field-email">
<div class="field-items"><a href="mailto:%0A%20%20%20%20name@example.com%20%20%20%20">
name@example.com    </a></div>
</div>

虽然我怀疑其他读到这个问题的人可能只是想去掉前面和后面的空格,但是我很高兴去掉所有的空格,因为这是一个我正在包装的电子邮件地址。

214686 次浏览

在 js 中使用 replace函数:

var emailAdd = $(this).text().replace(/ /g,'');

这将删除所有的空格

如果希望删除前导空格和尾随空格 只有,请使用 jQuery $. 装饰方法:

var emailAdd = $.trim($(this).text());

事实上,jQuery 有一个内置的修剪功能:

 var emailAdd = jQuery.trim($(this).text());

详情请参阅 给你

str=str.replace(/^\s+|\s+$/g,'');

Javascript 内置了一些细节:

str.trim()

它不能在 IE8中工作。如果你必须支持较老的浏览器,使用 燕尾服保罗的的答案。