回车编码

carriage return encoding

本文关键字:编码 回车      更新时间:2023-09-26

通过对数据库的查询我正在检索我以前通过HTML textareainput插入的数据。当我从DB获得响应时,在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

任何建议吗?

问题是您将正则表达式括在引号中。这是错误的。

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

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

通过在里面加引号,你实际上已经告诉它你想要替换一个固定的字符串而不是正则表达式。固定字符串可能看起来像一个表达式,但加上引号,它将被视为一个普通字符串。

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

还有一件事,为了使你的正则表达式完美地工作,我还建议稍微修改一下。目前,它将用<br>替换所有的'n'r字符。但在某些情况下,它们可能会作为'r'n对组合在一起。这应该是一个单独的换行符,但是表达式将用两个<br>替换它。

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

/'r'n|'n|'r/g

希望对你有帮助。

您的代码中缺少结束分号;:

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

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

From:试图在Javascript中将回车转换为
html标记?

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