2012-11-20 21 views
-1

我想使用表達式中的變量爲自動遞增ID添加更多。但是當我在表達式添加變量將無法正常工作,當我進入靜態表達字符串「_1」它的工作
這裏是代碼正則表達式中的變量不工作在jquery

$(document).ready(function() { 

    var row_number_current = 1; 
    var row_number_increment = Number(row_number_current); 
    row_number_increment += 1; 

    var addMore = '<div id="data_box_1"><label for="chart-pie-text_1">Chart Text</label></div>'; 

    var row1 = addMore.replace("/_"+row_number_current+"/g", '_'+row_number_increment); 
    var row2 = addMore.replace(/_1/g, '_'+row_number_increment); 

    alert(row1); 
    alert(row2); 
}); 

ROW1的結果是

<div id="data_box_1"><label for="chart-pie-text_1">Chart Text</label></div> 

和2行結果是

<div id="data_box_2"><label for="chart-pie-text_2">Chart Text</label></div> 
+0

請了投票,以我的問題,我不再被允許問的問題是由於向下投票 –

回答

1

"/_"+row_number_current+"/g"是一個字符串,而不是正則表達式。你需要建立基於此字符串的正則表達式,然後傳遞pattern論點取代:

var regex1 = new RegeExp("_"+row_number_current,"g"); 
var row1 = addMore.replace(regex1, '_'+row_number_increment); 

你的具體情況,但是,你並不真的需要一個正則表達式。只需使用一個字符串:

var row1 = addMore.replace(row_number_current, row_number_increment, "g"); 
+0

感謝它正在工作 –

+0

'var row1 = addMore.replace(row_number_current,row_number_increment);'它只取代第一個_1不是全部 –

+0

@DarkWish是的,我已經添加了'g'標記 –

1

爲了在正則表達式中使用變量,你必須創建新的RegExp對象,並通過你的表達式作爲第一個字符串參數:

var regex = new RegExp("_" + row_number_current, "g"); 
row1 = addMore.replace(regex, "_" + row_number_increment); 
+0

由於現在 –

+0

工作請了投票,以我的問題,我不再被允許問的問題由於投票 –