使用jQuery抓取文本时如何剥离空格?

时间:2008-12-11 19:03:41

标签: jquery

我想使用jQuery来封装mailto:锚定一个电子邮件地址,但它也抓住了CMS正在生成的空白区域。

这是我必须使用的HTML,我拥有的脚本和输出的副本。

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>

虽然我怀疑其他人在阅读这个问题时可能只想删除领先和拖尾的空白,但我很高兴失去所有的空白,因为它是我正在包装的电子邮件地址。

4 个答案:

答案 0 :(得分:325)

在js:

中使用replace功能
var emailAdd = $(this).text().replace(/ /g,'');

这将删除所有空格

如果要删除前导和尾随空格 ,请使用jQuery $ .trim方法:

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

答案 1 :(得分:98)

Javascript内置修剪:

str.trim()

它在IE8中不起作用。如果您必须支持旧版浏览器,请使用Tuxmentat'sPaul's answer。

答案 2 :(得分:67)

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

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

有关详细信息,请参阅here

答案 3 :(得分:24)

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