为了账号安全,请及时绑定邮箱和手机立即绑定

js正则怎么匹配<pre><code>xxx</code</pre>中的内容

js正则怎么匹配<pre><code>xxx</code</pre>中的内容

人到中年有点甜 2019-03-16 14:15:13
"<p>第一个</p><pre><code>console.log(1);</code></pre><p>第二个</p><pre><code>console.log(2);</code></pre>"想把pre>code里面的内容提取出来并替换掉该怎么做这些全是字符串不是dom
查看完整描述

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);


查看完整回答
反对 回复 2019-03-26
?
qq_笑_17

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");


查看完整回答
反对 回复 2019-03-26
?
江户川乱折腾

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*?/是懒惰匹配。


查看完整回答
反对 回复 2019-03-26
  • 3 回答
  • 0 关注
  • 748 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号