2013-03-17 65 views
0

通过查询到数据库我检索的数据是我之前通过HTMLtextareainput插入的。当我从我的数据库的响应,在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

有什么建议吗?

+2

什么是“↵”?请显示真正的JSON。 – loganfsmyth 2013-03-17 18:49:24

+2

你试过'string.replace('↵','
')'? – Yogu 2013-03-17 18:50:27

+0

是它实际显示的字符。 – steo 2013-03-17 18:58:17

回答

0

你缺少结束分号;在你的代码:

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

这并不需要解决您的问题,但它可能会。

1

你的问题是你已经用引号括起来的正则表达式。这是不正确的。

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

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

通过将引号放在那里,您实际上已经告诉它,您要替换固定字符串而不是正则表达式。固定的字符串可能看起来像一个表达式,但用引号,它只会被看作是一个普通的字符串。

删除引号,它将被视为一个表达式,它会工作得很好。

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

你可以使用一个表达这样反而:

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

希望有所帮助。