trim() 在应用于 backbone 模型中的字符串时不起作用

trim() not working while applying to a string from a backbone model

我从 backbone 模型中获取字符串 "hi\nbye\ngoodluck\n\n{{optout}}"。但我需要 trim() 字符串。但是没用。

当我在浏览器中使用与 trim() 相同的字符串时,它工作正常:"hi\nbye\ngoodluck\n\n{{optout}}".trim()

预期输出:

hi
bye
goodluck

{{optout}}

您的字符串有 multiple-new-lines(\n)trim() 删除单个 new-lines。这就是问题发生的原因

您需要将 .replace()pattern

一起使用

工作片段:-

console.log("hi\nbye\ngoodluck\n\n{{optout}}".replace(/[\r\n]+/g, '\n'));

您的问题与trim无关。 trim 不会将“\n”转换为新行。 '\n' 已经是换行符。如果您想在页面和不同行中查看字符串,您必须知道 HTML 会忽略新行,除非文本位于 <pre> 标记内。

您需要先将换行符转换为 <br> 标记,然后再将其添加到页面:

var str = "hi\nbye\ngoodluck\n\n{{optout}}";

var convertedStr = str.replace(/\n/g, '<br>');

 console.log(convertedStr);