2011-12-21 3 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>'); 

Однако, теперь у меня есть необходимость динамически изменять цвет двух последних только переменных, так что я решили заключить их в промежуток с классом = '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," ") + '
'); , но я думаю, что мне нужно понять, как использовать добавление и текст одновременно. – Terry

+0

@Terry: В моем коде была небольшая проблема, извините. Попробуйте еще раз, теперь он должен работать. – Ryan

Смежные вопросы