我正在全力以赴地替换这些字符串:
<title id="hello">my title </title>
<title >my title </title>
<title id="hello" class="blue">my title </title>
我需要正则表达式,它取代了标题标签之间的文本,取消了属性。 遗憾的是,我只得到了这个正则表达式的第二个例子:
str.replace(/<\/?title>/g,'')
有什么想法吗?
答案 0 :(得分:1)
最好避免使用正则表达式来解析HTML。
RegEx match open tags except XHTML self-contained tags
Using regular expressions to parse HTML: why not?
<小时/> 相反,使用内容生成临时DOM元素并应用所有更改最终获取HTML内容。
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;
Fore NodeJS参考:HTML-parser on Node.js