2011-12-21 92 views
2

的子字符串的第一次出現下面的語句罰款運行:使用正則表達式來替換所有,但空白

$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;

任何和所有的建議是最受歡迎的,特別是如果你看到我的整個方法很差。

回答

0

只是不要使用字符串。相反,使用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