JavaScript多行字符串解码

JavaScript多行字符串解码,javascript,string,decode,Javascript,String,Decode,我有一个字符串: <Grid><Description>LINE 1 LINE 2 LINE 3 LINE 4 </Description><</Grid> 我需要用换行符来解码。我找到了解决办法: function decodeString(stringToDecode) { if (!stringToDecode) { return st

我有一个字符串:

<Grid><Description>LINE 1
LINE 2
LINE 3
LINE 4
</Description><</Grid>  
我需要用换行符来解码。我找到了解决办法:

function decodeString(stringToDecode) {
    if (!stringToDecode) {
        return stringToDecode;
    }
    return $('<div />').html(stringToDecode).text();
}
函数解码字符串(stringToDecode){
如果(!stringToDecode){
返回字符串进行编码;
}
返回$('').html(stringToDecode.text();
}

但它只生成一行,并用空格替换所有的换行符。

您的示例具有CR/LF-但这不是HTML中的换行符。您需要将其替换为有效的HTML换行符,即
标记

您的函数有一个奇怪的if语句,它没有多大意义。刚刚证明stringToDecode为null时,为什么要返回它?另外,
$('').html(stringToDecode).text()
也不会有任何帮助

试着这样做:

function decodeString(stringToDecode) {
if (!stringToDecode) {
    return "";
}
var regX = /\\n/g;
var replaceString = '<br> \\n';
return stringToDecode.replace(regX, replaceString);
}
函数解码字符串(stringToDecode){
如果(!stringToDecode){
返回“”;
}
变量regX=/\\n/g;
var replaceString='
\\n'; 返回stringToDecode.replace(regX,replaceString); }
您的示例有CR/LF,但这不是HTML中的换行符。您需要将其替换为有效的HTML换行符,即
标记

您的函数有一个奇怪的if语句,它没有多大意义。刚刚证明stringToDecode为null时,为什么要返回它?另外,
$('').html(stringToDecode).text()
也不会有任何帮助

试着这样做:

function decodeString(stringToDecode) {
if (!stringToDecode) {
    return "";
}
var regX = /\\n/g;
var replaceString = '<br> \\n';
return stringToDecode.replace(regX, replaceString);
}
函数解码字符串(stringToDecode){
如果(!stringToDecode){
返回“”;
}
变量regX=/\\n/g;
var replaceString='
\\n'; 返回stringToDecode.replace(regX,replaceString); }
您可以使用以下方法将换行符替换为

标记,然后设置HTML:

return $('<div />').html(stringToDecode.replace(/\n/, '&lt;br /&gt;')).text();
return$('').html(stringToDecode.replace(/\n/,'br/')).text();

您可以使用以下方法将换行符替换为

标记,然后设置HTML:

return $('<div />').html(stringToDecode.replace(/\n/, '&lt;br /&gt;')).text();
return$('').html(stringToDecode.replace(/\n/,'br/')).text();
函数解码字符串(stringToDecode){
返回stringToDecode?$(“”).html(stringToDecode.replace(/[\n\r]/g,“
\r\n”))。text():“” }
函数解码字符串(stringToDecode){
返回stringToDecode?$(“”).html(stringToDecode.replace(/[\n\r]/g,“
\r\n”))。text():“” }
我改进了您的解决方案:
var-tentagname='LineBreak';var decodedString=$('').html(stringToDecode.replace(/\n/g,“+TestAgName+”/\r\n”)).text();返回decodedString.replaceAll(“”,\r\n')
换行符Regexp应该是
/(\r\n |\n |\r)/gm
我改进了您的解决方案:
var-tentagname='LineBreak';var decodedString=$('').html(stringToDecode.replace(/\n/g,“+TestAgName+”/\r\n”)).text();返回decodedString.replaceAll(“”,\r\n')换行符Regexp应为
/(\r\n |\n |\r)/gm