用于从JavaScript中的json对象数组中的字符串中删除<span> </span>的函数

时间:2016-10-13 06:53:32

标签: javascript html arrays

我知道发布了许多类似的问题,并尝试过几个解决方案,但我真的很感激我的具体问题的一些指导。

我想从我的HTML markup中删除stringarray的每个项目中的以下<SPAN CLASS="KEYWORDSEARCHTERM"> </SPAN>

array

我有json objects HTML markup(printArray),其printArray.header可能包含<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016 RECORD WINE PRICES AT <SPAN CLASS="KEYWORDSEARCHTERM">NEDBANK</SPAN> AUCTION

标题文字并不总是相同。

以下是printArray.header的两个示例:

HTML markup

我想剥离var newHeaderString; var printArrayWithExtract; var summaryText; this.setPrintItems = function(printArray) { angular.forEach(printArray, function(printItem){ if (printItem.ArticleText === null) { summaryText = ''; } else { summaryText = '... ' + printItem.ArticleText.substring(50, 210) + '...'; } // Code to replace the HTML markup in printItem.header // and return newHeaderString printArrayWithExtract.push( { ArticleText: printItem.ArticleText, Summary: summaryText, Circulation: printItem.Circulation, Headline: newHeaderString, } ); }); return printArrayWithExtract; }; ,留下以下结果:

  

2016年最受尊敬的公司

     

在NEDBANK拍卖中记录葡萄酒价格

这是我的功能:

{{1}}

3 个答案:

答案 0 :(得分:1)

可以使用正则表达式完成,见下文:

var s1 = '<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016';
var s2 = 'RECORD WINE PRICES AT <SPAN CLASS="KEYWORDSEARCHTERM">NEDBANK</SPAN> AUCTION';

function removeSpanInText(s) {
  return s.replace(/<\/?SPAN[^>]*>/gi, "");
}

$("#x1").text(removeSpanInText(s1));
$("#x2").text(removeSpanInText(s2));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1 ->
<span id="x1"></span>
<br/>2 ->
<span id="x2"></span>

有关详细信息,请参阅例如Javascript Regex Replace HTML Tags
并且不需要jQuery,只是用于显示输出。

答案 1 :(得分:1)

试试这个功能。它将删除所有标记标记......

function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}

调用此函数将html作为字符串发送。例如,

var str = '<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016';
var expectedText = strip(str);

在这里,您可以找到预期的文字。

答案 2 :(得分:0)

我使用了这个小替换函数:

 if (printItem.Headline === null) {
            headlineText = '';
        }
        else {
            var str = printItem.Headline;
            var rem1 = str.replace('<SPAN CLASS="KEYWORDSEARCHTERM">', '');
            var rem2 = rem1.replace('</SPAN>', '');
            var newHeaderString = rem2;
        }