3 回答

TA贡献1798条经验 获得超7个赞
提供下非正则的方式
如果是jq的话
var html="<pre><code>console.log(1);</code></pre>";
console.log( $(html).text() );
如果非得用js
var textEle=document.createElement("div");
textEle.innerHTML="<span>你要提取的文字</span>";
console.log(textEle.innerText);

TA贡献1818条经验 获得超7个赞
var html="<pre><code>console.log(1);</code></pre><pre><code>console.log(2);</code></pre>";
html.replace(/<pre><code>(.*?)<\/code><\/pre>/g, "$1");

TA贡献1851条经验 获得超5个赞
正则匹配的话就这样
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*?/是懒惰匹配。
添加回答
举报