尝试用 < br/> 替换 \r\n 2 小时,但这似乎是不可能的。我不知道我在做什么!请帮忙!const text = '"Hello!\r\n\r\nThis is a dog!'const checkText = str=> { const match = /\r|\n/.exec(text); if (match) { //return str.replace(/(?:\\[rn]|[\r\n]+)+/g, '<br/>'); return str.replace('/r/n', '<br/>'); } return str;};checkText(text)
4 回答
倚天杖
TA贡献1828条经验 获得超3个赞
涵盖所有可能的新行字符组合。
String tmp = s.replaceAll("\r\n", "<br>"); // Windows
tmp = tmp.replaceAll("\r", "<br>"); // Old MAC
return tmp.replaceAll("\n", "<br>"); // Linux / UNIX
有只小跳蛙
TA贡献1824条经验 获得超8个赞
您的代码存在多个错误:
String.prototype.replace仅替换字符串的第一个匹配项。您需要将正则表达式参数与标志一起使用来替换所有匹配项。/g转义使用反斜杠,而不是正斜杠:使用 ,而不是 。
\r\n/r/ncheckText返回一个 ,但您的调用站点不对返回的字符串执行任何操作 - 它只是被删除。字符串在 JavaScript 中是不可变的。string
我不建议使用字符串来保存HTML,因为它可以(非常容易)导致HTML注入(包括-注入)攻击。<script>
相反,请执行下列操作之一:
在数组中使用和 HTML 编码,并使用 .
String.prototype.splitstringjoin"<br />"将字符串直接添加到文档中(不再使用),并为父元素提供 CSS 样式。
.textContentinnerTextwhitespace: pre-wrap;
添加回答
举报
0/150
提交
取消
