回车编码

时间:2013-03-17 18:46:43

标签: javascript html encode

通过查询数据库我正在检索我之前通过 HTML textareainput插入的数据。当我从我的数据库获得响应时,在JSON对象中,text字段如下所示:

  obj :  {
           text :  [some_text] ↵ [some_text]
         }

我尝试替换为此function

 string_convert = function(string){
  return string.replace("&#8629",'<br>')
               .replace('&crarr','<br>')
               .replace('/[\n\r]/g','<br>');
 }

我必须在 HTML 中显示此字符串,但它似乎不起作用。我正在使用UTF-8

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您遇到的问题是您已将正则表达式括在引号中。这是不正确的。

.replace('/[\n\r]/g','<br>');
         ^         ^
       remove these two quotes

引号是不必要的,因为正则表达式已经被斜杠分隔。

通过在其中添加引号,您实际上告诉它您要替换固定字符串而不是正则表达式。固定字符串可能看起来像一个表达式,但是使用引号,它只会被视为一个纯字符串。

删除引号,它将被视为一个表达式,它将正常工作。

另外一件事 - 为了让你的正则表达式完美运行,我还建议稍微修改它。就目前而言,它只会用\n替换所有\r<br>个字符。但在某些情况下,它们可能会成为\r\n对。这应该是单个换行符,但您的表达式将用两个<br>替换它。

您可以使用这样的表达式:

/\r\n|\n|\r/g

希望有所帮助。

答案 1 :(得分:0)

您错过了代码中的结尾分号;

string_convert = function(aString){
  return aString.replace("&#8629;",'<br>').replace('&crarr;','<br>');
}

这不一定能解决你的问题,但很有可能。

答案 2 :(得分:0)

来自:Trying to translate a carriage return into a
html tag in Javascript?

text = text.replace(/(\r\n|\n|\r)/g,"<br />");