【发布时间】:2020-11-12 13:20:27
【问题描述】:
如何使用RegExp 替换<code> </code> 标签之间的每个\n 字符?
下面的代码太从字面上理解了我的问题。它与<code></code>\n<code></code> 中的\n 匹配,因为从技术上讲,它位于<code> 开始和结束标记之间。
const string = `<!DOCTYPE html>
<html>
<head></head>
<body>
<code>function foo() {
console.log('Hello');
}</code>
<code>function bar() {
console.log('World!');
}</code>
</pre>
</body>
</html>`;
const regExp = /(?<=<code>.*)\n(?=.*<\/code>)/gs;
const newString = string.replace(regExp, '<br>');
console.log(newString);
【问题讨论】:
-
这样怎么样:
str.split("\n")然后过滤掉空字符串(String.trim()之后),最后是Array.join('\n') -
您是否在浏览器中作为已加载页面的一部分执行此操作?
-
我的意思是你可以这样做
(?<=<code>(?:(?!<\/?code).)*)\n(?=(?:(?!<\/?code).)*<\/code>)但是很慢。 -
这个在4天前就被回答并接受了,为什么昨天因为需要focus而被关闭了?有什么不明白的吗?你最好也关闭这个stackoverflow.com/questions/62938272/…,因为为什么?
-
他们做我认为的事情会得到积分。
标签: javascript regex html-parsing newline