javascript替换tag-regex undepend html-attributes

时间:2017-01-12 18:04:09

标签: javascript regex

我正在全力以赴地替换这些字符串:

<title id="hello">my title </title>
<title >my title </title>
<title id="hello" class="blue">my title </title>

我需要正则表达式,它取代了标题标签之间的文本,取消了属性。 遗憾的是,我只得到了这个正则表达式的第二个例子:

str.replace(/<\/?title>/g,'')

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

最好避免使用正则表达式来解析HTML。

RegEx match open tags except XHTML self-contained tags

Using regular expressions to parse HTML: why not?

<小时/> 相反,使用内容生成临时DOM元素并应用所有更改最终获取HTML内容。

&#13;
&#13;
var html = `<title id="hello">my title </title>
<title >my title </title>
<title id="hello" class="blue">my title </title>`;

// generate a temporary div elementt
var temp = document.createElement('div');
// set its html content as the string
temp.innerHTML = html;

//do the rest here
// get all title tags
Array.from(temp.getElementsByTagName('title'))
  // iterate over the title tag and do the necessary chenges
  .forEach(function(ele) {
    ele.innerHTML = 'new content'
  })

// get back the updated html content from dom element
console.log(temp.innerHTML);
&#13;
&#13;
&#13;

Fore NodeJS参考:HTML-parser on Node.js