JS Regex删除HTML标签和内容

时间:2018-02-13 10:52:29

标签: javascript

我正在寻找一个JS Regex去除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

1 个答案:

答案 0 :(得分:1)

创建虚拟元素以删除元素并仅保留文本节点

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

<强>演示

&#13;
&#13;
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) );
&#13;
&#13;
&#13;