由于Escape Sequence,Javascript Replace不起作用

时间:2015-10-18 16:56:47

标签: javascript regex

我需要用<br>标记替换var中的每个'\ n',但我尝试的代码不起作用。这是我的示例和代码:

示例:

  

你好\ n你在线吗? \ n你的意思是什么?

应该成为:

  

Hello there <br> Are you online? <br> What do you mean?

代码:

var text = 'Hello there \n Are you online? \n What do you mean?';
var find = '\n';
var re = new RegExp(find, 'g');

re = text .replace(re, '<br>');

我做错了什么?

3 个答案:

答案 0 :(得分:1)

&#13;
&#13;
var text = 'Hello there \n Are you online? \n What do you mean?';
var find = '\n';
var re = new RegExp(find, 'g');

re = text.replace(re, '<br>');
document.write(re);
&#13;
&#13;
&#13;

工作正常

答案 1 :(得分:0)

你写的小提琴:

 document.findElementById

而不是

 document.getElementById

我认为这是应该解决你问题的事情之一!

答案 2 :(得分:0)

Working Fiddle

在您的小提琴中(您没有在原始问题中发布),评论中已经解决了几个问题。但是问题的关键 - 这会帮助我们更快地帮助你 - 是你从innerHTML属性中拉出一个带有“\ n”的字符串。这些不是换行符,因为如果您看到文字“\ n”而不是换行符,则表示它已被转义。因此,您需要在正则表达式中使用“\\ n”,而不是“\ n”。在现代浏览器中使用devtool控制台来检查变量并捕获错误。

代码:

var el = document.getElementById("ado")
var text = document.getElementById("ado").innerHTML;

text = text.replace(/\\n/g, '<br>');

el.innerHTML = text