[英]variable in regular expression not working in jquery
我想在表达式中使用变量作为添加更多内容时的自动增量ID。 但是,当我在表达式中添加变量时,它将不起作用;当我在表达式中静态输入字符串“ _1”时,它将起作用
这是代码
$(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);
});
第1行的结果是
<div id="data_box_1"><label for="chart-pie-text_1">Chart Text</label></div>
并且row2结果是
<div id="data_box_2"><label for="chart-pie-text_2">Chart Text</label></div>
为了在正则表达式中使用变量,您必须创建新的RegExp
对象并将表达式作为第一个字符串参数传递:
var regex = new RegExp("_" + row_number_current, "g");
row1 = addMore.replace(regex, "_" + row_number_increment);
"/_"+row_number_current+"/g"
是字符串,而不是正则表达式。 您需要使用此字符串构造一个正则表达式,然后将其作为pattern
参数传递给 replace:
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.