Javascript JQuery是否只修剪前导空格?

Javascript JQuery是否只修剪前导空格?,javascript,jquery,html,Javascript,Jquery,Html,我正在设计一个JSP应用程序的主题,这个应用程序有一个带有动态生成数据的表头,我认为它叫做Jasper Reports?我没有权限访问任何输出的模板文件。我用一个JQuery-foo让事情看起来很好 但我仍然有一个问题,标题td>span中的一些span标记中似乎有空白: <td><span> My Heading</span></td> 注意单词My之前的空格 我发现可以修剪空白,但问题是它会去掉所有空白 var pane = $('span'

我正在设计一个JSP应用程序的主题,这个应用程序有一个带有动态生成数据的表头,我认为它叫做Jasper Reports?我没有权限访问任何输出的模板文件。我用一个JQuery-foo让事情看起来很好

但我仍然有一个问题,标题td>span中的一些span标记中似乎有空白:

<td><span> My Heading</span></td>
注意单词My之前的空格

我发现可以修剪空白,但问题是它会去掉所有空白

var pane = $('span');
pane.val($.trim(pane.val()).replace(/\s*[\r\n]+\s*/g, '\n')
    .replace(/(<[^\/][^>]*>)\s*/g, '$1')
    .replace(/\s*(<\/[^>]+>)/g, '$1'));
所以现在使用这段代码,它的结果是:

   <td><span>MyHeading</span></td>
理想情况下,我想修改它,以便只删除第一位空白,但之后没有

试试这个:

.replace(/^\s+/g, "");
这将删除字符串开头的所有空白。或者,可以使用稍微不同的表达式来修剪尾随空格。请看这里:

下面是一个示例,您可以看到它是如何工作的: 试试这个:

.replace(/^\s+/g, "");
这将删除字符串开头的所有空白。或者,可以使用稍微不同的表达式来修剪尾随空格。请看这里:

下面是一个示例,您可以看到它是如何工作的: 使用.text获取字符串值

var pane = $('span');
pane.html($.trim(pane.text()));
编辑: 如果文档中的跨度超过1,则上面的代码将覆盖文本,因此无法工作

您需要迭代跨度数组

//array of all the spans that are children of a td element
var spansArray = $('td > span');
//iterate the array
spansArray.each(function() {
    var $this = $(this);
    $this.html($.trim($this.text()));
});​
使用.text获取字符串值

var pane = $('span');
pane.html($.trim(pane.text()));
编辑: 如果文档中的跨度超过1,则上面的代码将覆盖文本,因此无法工作

您需要迭代跨度数组

//array of all the spans that are children of a td element
var spansArray = $('td > span');
//iterate the array
spansArray.each(function() {
    var $this = $(this);
    $this.html($.trim($this.text()));
});​

对于要删除的第一个空间,您需要该代码

var pane = $('span');
pane.text(pane.text().replace(/^\s/, ''));

对于要删除的第一个空间,您需要该代码

var pane = $('span');
pane.text(pane.text().replace(/^\s/, ''));

只有第一个空格你是说只有第一个空格保持其他空格完好无损吗?好的,是的,就是尝试此窗格后的第一个空格。textpane.text.replace/^\s/;只有第一个空格你是说只有第一个空格保持其他空格完好无损吗?好的,是的,就是尝试此窗格后的第一个空格。textpane.text.replace/^\s/;谢谢,这看起来不错,但我如何只针对我的特定元素,即?我不认为这会起作用,因为从来没有相同的文本字符串,对不起,我应该说清楚。谢谢,这似乎很好,但我如何只针对我的特定元素,即?我不认为这会起作用,因为从来没有相同的文本字符串,对不起,我应该说清楚。你在fiddle中的代码与这里的不同,我应该使用哪一个?我在这里发布的代码将影响你文档上的所有跨距,fiddle上的代码将只影响带有类changeMe的跨距,由于您无权访问html,因此必须选择所有跨距$'span',除非找到方法选择要更改的特定集。$'myModuleId span'例如@see try$'td>span'=所有td元素的子span fiddle中的代码与此处的不同,我应该使用哪一个?我在此处发布的代码将影响文档上的所有span,fiddle上的代码将只影响具有类changeMe的span,由于您无权访问html,因此必须选择所有跨距$'span',除非找到方法选择要更改的特定集。$'myModuleId span'例如@see try$'td>span'=所有td元素的子span