通过查询数据库我正在检索我之前通过 HTML textarea
或input
插入的数据。当我从我的数据库获得响应时,在JSON
对象中,text
字段如下所示:
obj : {
text : [some_text] ↵ [some_text]
}
我尝试替换为此function
:
string_convert = function(string){
return string.replace("↵",'<br>')
.replace('&crarr','<br>')
.replace('/[\n\r]/g','<br>');
}
我必须在 HTML 中显示此字符串,但它似乎不起作用。我正在使用UTF-8
有什么建议吗?
答案 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("↵",'<br>').replace('↵','<br>');
}
这不一定能解决你的问题,但很有可能。
答案 2 :(得分:0)
来自:Trying to translate a carriage return into a
html tag in Javascript?
text = text.replace(/(\r\n|\n|\r)/g,"<br />");