使用正则表达式来替换所有,但空白

使用正则表达式来替换所有,但空白

问题描述:

的子字符串的第一次出现下面的语句罚款运行:使用正则表达式来替换所有,但空白

$wb.upLinearLoad.append('<div>' + sprintf("%5s%8.1f to%7.1f%8.1f%6.0f%8.0f",sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen,fLinearPtPpi[i][j],fLinearSegMaxWt[i][j]).replace(/ /," &nbsp;") + '</div>'); 

不过,我现在有一个需要动态改变只有最后两个变量的颜色,所以我决定用class ='wt'来控制它们的颜色。这给:

$wb.upLinearLoad.append('<div>' + sprintf("%5s%8.1f to%7.1f%8.1f<span class='wt'>%6.0f%8.0f</span>",sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen,fLinearPtPpi[i][j],fLinearSegMaxWt[i][j]).replace(/ /," &nbsp;") + '</div>'); 

因为跨度和类之间的空间被改为&nbsp;

我的正则表达式的能力,从而未能进入仅就的例子,所以问题就变成如何更改所有,但第一空间到&nbsp;

任何和所有的建议是最受欢迎的,特别是如果你看到我的整个方法很差。

只是不要使用字符串。相反,使用jQuery/DOM操作。它不太容易出错并且更加高效。

$wb.upLinearLoad.append(
    $('<div>').append(
     sprintf("%5s%8.1f to%7.1f%8.1f", sLinearSegName[i][j], fLinearPtBA[i][j], fLinearPtBA[i][j+1], fLen), 
     $('<span>').addClass('wt').text(sprintf("%6.0f%8.0f</span>", fLinearPtPpi[i][j], fLinearSegMaxWt[i][j]))[0] 
    ) 
); 
+0

虽然minitech的建议复制和粘贴产生混乱的显示,但我认为他指出我在正确的方向,虽然我还没有完全理解它。目前,我通过执行以下操作:\t \t \t $ wb.upLinearLoad.append('

' + sprintf("%5s%8.1f to%7.1f%8.1f",sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen).replace(/ /g," ") + '' + sprintf('%6.0f%8.0f',fLinearPtPpi[i][j],fLinearSegMaxWt[i][j]).replace(/ /g," ") + '
'); 但我认为我需要做的是了解如何同时使用append和text。 – Terry 2011-12-27 21:09:54
+0

@Terry:我的代码有点小问题,对不起。再试一次,它现在应该工作。 – Ryan 2011-12-28 21:49:21