javascript - 根据匹配条件在连接字符串中换行并添加换行符

标签 javascript angular

我通过以下格式的 API 调用从 DB 获取动态文本

Test 1<br>Test 2<br>Test 3
如何在有“br”标签的地方打破这个字符串并添加换行符?我需要以以下格式显示字符串
Test 1
Test 2
Test 3
有人可以阐明一下。
更新:尝试下面的代码,正在添加空间而不是新行
gridData.STATUSNOTES = gridData.STATUSNOTES.replaceAll('<br>', '\n');

最佳答案

使用“br”
您可以使用 innerHTML 简单地附加文本,例如:

var content = "Test 1<br>Test 2<br>Test 3"
document.getElementById("result").innerHTML = content
<div id="result"></div>

使用“div”
如果它不起作用,无论如何父元素不允许,您可以使用div或任何带有 display 的元素属性为 block因为 block 级元素总是从新行开始,并且总是占据可用的全部宽度。这是一个将字符串转换为新行的示例:

var content = "Test 1<br>Test 2<br>Test 3"
var result = "";
content.split("<br>").map(element => result += `<div>${element}</div>`)
document.getElementById("result").innerHTML = result
<div id="result"></div>

UPDATE 使用“\n”作为建议,OP 没有提供这是否是 HTML
要对 HTML 不执行任何操作,只需在文本中添加换行符,您可以替换所有 br\n
const content = 'Test 1<br>Test 2<br>Test 3'.replaceAll('<br>', '\n');
console.log(content);

使用 CSS 更新 2
如果您想使用 \n作为换行的东西,也许你可以使用 CSS 样式 white-space: pre-line .这是一种使用 \n 换行的 CSS 方式.希望这可以帮助。

var content = "Test 1<br>Test 2<br>Test 3".replaceAll("<br>","\n")
document.getElementById("result").innerHTML = content
<div id="result" style="white-space: pre-line;"></div>

关于javascript - 根据匹配条件在连接字符串中换行并添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70375365/

相关文章:

javascript - 如何在滚动条上显示 React 组件

javascript - 使用大数组进行反向地理编码是最快的方法吗? - JavaScript 和性能

javascript - 如何在 Jest 中测试抛出异常的类型

javascript - Angular 4 将服务从路由传递到组件

没有在每个路由请求上调用 Angular 4 Component ngOnInit

javascript - .click(function()) 未被调用

javascript - JavaScript 或 IEEE-754 中的舍入怪癖?

angular - Angular 2/4 中的 HAML?

设置值时 Angular react 形式测试不起作用。如何进行单元测试?

angular - node_modules/@auth0/angular-jwt/lib/jwtoptions.token.d.ts(2,50) : error TS2304: Cannot find name 'unknown' 中的错误