我正在寻找一个 JS 正则表达式来删除 HTML 标签+其中的内容。到目前为止我发现的是一个简单的正则表达式来删除 HTML 标签,但没有 div:
newdata.replace(/<[^>]*>/gi, '');
我有:
Color<select>
<option value="">Show All</option>
<option value="Black">Black</option><option value="Blue">Blue</option>
</select>
我需要什么:
Color
最佳答案
创建一个虚拟元素以删除元素并仅保留文本节点
function stripElements( str )
{
var dummyDiv = document.createElement( "div" );
dummyDiv.innerHTML = str;
return Array.from( dummyDiv.childNodes ).filter( s => s.nodeType == 3 ).map( s => s.nodeValue ).join("");
}
演示
var str = `Color<select>
<option value="">Show All</option>
<option value="Black">Black</option><option value="Blue">Blue</option>
</select>`;
function stripElements( str )
{
var dummyDiv = document.createElement( "div" );
dummyDiv.innerHTML = str;
return Array.from( dummyDiv.childNodes ).filter( s => s.nodeType == 3 ).map( s => s.nodeValue ).join("");
}
console.log( stripElements(str) );
关于javascript - JS 正则表达式删除 HTML 标签和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765078/