JavaScript多行字符串解码

时间:2011-05-10 10:42:22

标签: javascript string decode

我有一个字符串:

<Grid><Description>LINE 1
LINE 2
LINE 3
LINE 4
</Description><</Grid>  

我需要用换行符解码它。我找到了解决方案:

function decodeString(stringToDecode) {
    if (!stringToDecode) {
        return stringToDecode;
    }
    return $('<div />').html(stringToDecode).text();
}

但它会生成单行并用空格替换所有换行符。

3 个答案:

答案 0 :(得分:1)

您可以使用以下内容将换行符替换为<br />代码,然后设置HTML:

return $('<div />').html(stringToDecode.replace(/\n/, '&lt;br /&gt;')).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);
}