我有一个字符串:
<Grid><Description>LINE 1
LINE 2
LINE 3
LINE 4
</Description><</Grid>
我需要用换行符解码它。我找到了解决方案:
function decodeString(stringToDecode) {
if (!stringToDecode) {
return stringToDecode;
}
return $('<div />').html(stringToDecode).text();
}
但它会生成单行并用空格替换所有换行符。
答案 0 :(得分:1)
您可以使用以下内容将换行符替换为<br />
代码,然后设置HTML:
return $('<div />').html(stringToDecode.replace(/\n/, '<br />')).text();
答案 1 :(得分:1)
function decodeString(stringToDecode) {
return stringToDecode ? $('<div />').html(stringToDecode.replace(/[\n\r]/g, "<br> \r\n")).text() : ""
}
答案 2 :(得分:-1)
您的示例有CR / LF - 但这不是HTML中的换行符。您需要将其替换为有效的HTML换行符,即&lt; br&gt;标签
你的函数有一个奇怪的if语句没有多大意义。为什么在你刚证明它为null时返回stringToDecode?此外,$('<div />').html(stringToDecode).text()
不会做任何有用的事情。
尝试这样的事情:
function decodeString(stringToDecode) {
if (!stringToDecode) {
return "";
}
var regX = /\\n/g;
var replaceString = '<br> \\n';
return stringToDecode.replace(regX, replaceString);
}