我在textarea和顺序div中有一行文本,表示这一行。我正在尝试重新排序div并相应地使文本行重新排序。
Div与数组中的文本行索引具有相同的id。
现在我坚持删除行。如果是一个简单的文本,行可以被删除。但在我的例子里是个js代码。但由于某种原因它不起作用。
工作代码http://codepen.io/one2gov/pen/eBGqBR?editors=1111 (用于检查它的较低的selectedDivNumber )
var selectedDivNumber = 2;
var linesArray = ["line0;", "line1;", "tl.to(abstract_m, 13, {x:'1327', y:'117', autoAlpha:1, delay:4}, 'num_sound');"];
var arrayNumber = linesArray[selectedDivNumber];
textArea = $("#fname").val();
textArea = textArea.split(';');
arrayNumber = new RegExp(arrayNumber,'g');
$("#fname").html($("#fname").html().replace(arrayNumber, "something else;"));我尝试在.replace变量arrayNumber中使用,现在我将它转换为新的RegExp,但没有成功。
发布于 2016-11-29 19:09:26
您要替换的字符串是由于特殊字符(如{和( )而破坏正则表达式。
为此,我使用了一个RegExp转义函数:
RegExp.escape= function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); //replace special characters so RegExp won't break
};
//tl.to(abstract_m, 13, {x:'1327', y:'117', autoAlpha:1, delay:4}, 'num_sound');
var selectedDivNumber = 2;
var linesArray = ["line0;", "line1;", "tl.to(abstract_m, 13, {x:'1327', y:'117', autoAlpha:1, delay:4}, 'num_sound');"];
var arrayNumber = linesArray[selectedDivNumber];
textArea = $("#fname").val();
textArea = textArea.split(';');
arrayNumber = new RegExp(RegExp.escape(arrayNumber),'g'); //escape with RegExp.escape
$("#fname").html($("#fname").html().replace(arrayNumber, "something else;"));<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id = "fname" = rows="4" cols="50">
line0;
line1;
tl.to(abstract_m, 13, {x:'1327', y:'117', autoAlpha:1, delay:4}, 'num_sound');
</textarea>
https://stackoverflow.com/questions/40873397
复制相似问题