-1

文字列の特定の要素を取り除く必要があります。

文字列は次のようになります。

var htmlelement = '<b>Frame</b>: KHAKI TORT / MATTE BLACK<br>
<b>Lens</b>: <span class="titlecaps">SMOKE MONO</span><br>
<b>Protection</b>:  Category 3 lens - Maximum UV protection
<div><b>Hardware</b>: Initial temple badge<br>
<b>Packaging</b>: Le Specs protective pouch included<br>
<b>Gender</b>: Men

  <div><b>Model</b>: 1202055<br>
<b>Warranty</b>: Le Specs are warranted for one year against manufacturing faults from the date of purchase.<br>
<br>
<hr style="border:dotted #DDD; border-width:1px 0 0 0; height:0;line-height:0px;font-size:0;margin:0;padding:10px;">
<span style="font-family:times new roman;"><span style="font-weight:bold">DESIGNER NOTES</span><br>
<br>
This oversize and tough wayfarer style in khaki tortoiseshell features a contrast black top bar.
</span>
</div>
</div>'

HTML要素から変換したためです。

取り除かなければならないのはレンズとフレームです。したがって、上記の文字列の場合、これを返す必要があります。

Frame: KHAKI TORT / MATTE BLACK
Lens: SMOKE MONO

問題を解決するには、文字列が常に正確に提示されているとは限りません。たとえば、最初の文字列は次のようになります (順序が異なります)。

<b>Model</b>: 1202080<br>
<b>Protection</b>:  Category 3 lens - Maximum UV protection
<div><b>Hardware</b><span>:</span><b>&nbsp;</b><span>Silver logo temple badge</span><br>
<b>Packaging</b>: Le Specs protective pouch included<br>
<b>Gender</b>: Women<br>
<b>Warranty</b>: Le Specs are warranted for one year against manufacturing faults from the date of purchase.<br>
<br>
<b>Frame</b>: <span style="titlecaps">BLACK PRINT</span><br>
<hr style="border:dotted #DDD; border-width:1px 0 0 0; height:0;line-height:0px;font-size:0;margin:0;padding:10px;">
<b>Lens</b>: <span class="titlecaps">SMOKE GRAD</span><br>
<span style="font-family:times new roman;"><span style="font-weight:bold">DESIGNER NOTES</span><br>
<br>
Bold and glamorous, this oversize square style features soft curves featuring signature Le Specs Aztec print.
</span>
</div>

そして、私はまだこれを返す必要があります:

Frame: BLACK PRINT
Lens: SMOKE GRAD
4

2 に答える 2

1

私がとる手順は次のとおりです。

  1. 部分文字列のインデックスを見つける<b>Frame</b>:
  2. 次のインデックスを見つける<br>
  3. 最初のインデックスから 2 番目のインデックス + 4 (の長さ<br>)までの部分文字列を切り取ります。
  4. 正規表現を使用して html タグを取り除く
  5. 2 番目の線分 (レンズ) に対してプロセスを繰り返します。
于 2013-01-09T04:49:48.437 に答える
0

Wes Cが提案したものを使用することになりました。

完成したときの様子は次のとおりです。

$.each($(".descholder"), function(){
      var originalVal = $(this).html();
      var firstVal = originalVal.indexOf("Frame");
      var secondVal = originalVal.indexOf("<br>");
      var lensResult = originalVal.substring(firstVal, secondVal);
      var regex = /(<([^>]+)>)/ig;
      var body = lensResult;
      var result = body.replace(regex, "");
      result = result.replace("Frame: ", '');
      $(this).parent('.descresult').html(result);
});
于 2013-01-14T22:45:42.943 に答える