首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用特殊字符和空格替换js代码行

问用特殊字符和空格替换js代码行
EN

Stack Overflow用户
提问于 2016-11-29 18:43:06
回答 1查看 43关注 0票数 1

我在textarea和顺序div中有一行文本,表示这一行。我正在尝试重新排序div并相应地使文本行重新排序。

Div与数组中的文本行索引具有相同的id。

现在我坚持删除行。如果是一个简单的文本,行可以被删除。但在我的例子里是个js代码。但由于某种原因它不起作用。

工作代码http://codepen.io/one2gov/pen/eBGqBR?editors=1111 (用于检查它的较低的selectedDivNumber )

代码语言:javascript
复制
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,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-29 19:09:26

您要替换的字符串是由于特殊字符(如{和( )而破坏正则表达式。

为此,我使用了一个RegExp转义函数:

​

代码语言:javascript
复制
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;"));
代码语言:javascript
复制
<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>

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40873397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档