"<p>第一个</p>
<pre><code>console.log(1);</code></pre>
<p>第二个</p>
<pre><code>console.log(2);</code></pre>"
想把pre>code里面的内容提取出来并替换掉该怎么做
这些全是字符串不是dom
"<p>第一个</p>
<pre><code>console.log(1);</code></pre>
<p>第二个</p>
<pre><code>console.log(2);</code></pre>"
想把pre>code里面的内容提取出来并替换掉该怎么做
这些全是字符串不是dom
var html="<pre><code>console.log(1);</code></pre><pre><code>console.log(2);</code></pre>";
html.replace(/<pre><code>(.*?)<\/code><\/pre>/g, "$1");
正则匹配的话就这样
let str = `
<p>第一个</p>
<pre><code>console.log(1);</code></pre>
<p>第二个</p>
<pre><code>console.log(2);</code></pre>`;
str.match(/(?<=<pre><code>)[\s\S]*?(?=<\/code><\/pre>)/gi); // 获得
str.replace(/(?<=<pre><code>)[\s\S]*?(?=<\/code><\/pre>)/gi, 'asdf'); // 替换
其中,/(?<=somePattern)/
是“零宽度正回顾后发断言”贼基尔长,/(?=somePattern)/
是“零宽度正预测先行断言”贼基尔长*2,/somePattern/g
是全局匹配,/somePattern/i
是大小写不敏感,/somePattern*?/
是懒惰匹配。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
提供下非正则的方式
如果是jq的话
如果非得用js