关于 javascript 正则替换指定条件字符串的两个问题

想把 <code ... </code> 里的 &lt; unescape 掉成 <,如何能做到?

比如字符串如下:

var str = `<pre><code class="lang-html">&lt;style&gt;
  .myDiv {
    width: 150px;
    height: 200px;
    background: red;
    border-top-left-radius: 100%;
  }
&lt;/style&gt;
&lt;div class=&quot;myDiv&quot;&gt;&lt;/div&gt;
</code></pre>
`

// 随便写的,无视之 
str = str
  .replace(/<code(.|\n|\t|\f|\r|\v)+?(&lt;)(.|\n|\t|\f|\r|\v)+<\/code>/g, (a) => {
    return ''
  })

console.log(str)

另外,任意字符我是用 (.|\n|\t|\f|\r|\v) 去匹配,而 [.\n\t\f\r\v] 为何不行?

以上两个问题,求指导 ..

阅读 2k
1 个回答
第一个问题
str.replace(/&lt;/g, '<')
第二个问题
[.] 相当于 [\.]
另外匹配任意字符 用反义词比较好吧 [\s\S] 或 [\d\D] 之类的
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题