-1

I want to use variable in expression for auto increment id on add more. but when I add variable in expression it won't work and when I statically enter string "_1" in expression it work
Here is code

$(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);
});

result of row1 is

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

and row2 result is

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

2 に答える 2

1

正規表現で変数を使用するには、新しいRegExpオブジェクトを作成し、式を最初の文字列引数として渡す必要があります。

var regex = new RegExp("_" + row_number_current, "g");
row1 = addMore.replace(regex, "_" + row_number_increment);
于 2012-11-20T11:00:32.307 に答える
1

"/_"+row_number_current+"/g"正規表現ではなく文字列です。この文字列を使用して正規表現を作成し、それを引数として replace に渡す必要があります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");
于 2012-11-20T11:01:05.047 に答える