0
str = <a href = "#homecoupon" class ="current">COUPONS</a>

str から COUPONS という単語を取得する方法。#homecoupon という単語は別の単語に変わる可能性があるため、n 番目の位置の値を取得する部分文字列メソッドを実行できません。はclass ="current">COUPONS</a>常に修正されます。

最後の n 番目の単語を追跡して取得する方法はありますか。

4

3 に答える 3

5

ブラウザで HTML を解析する最善の方法は、ブラウザに任せることです。

メモリにダミー要素を作成し、それinnerHTMLを文字列に設定します。その後、通常の DOM API を使用して、そのアンカー要素のテキストを見つけることができます。

var div = document.createElement('div');
div.innerHTML = str;
var word = div.firstChild.textContent;

これがフィドルです:http://jsfiddle.net/mREFu/


それでもIE < 9をサポートする必要がある場合は、これを使用する必要があります:

var word = div.firstChild.textContent || div.firstChild.innerText;

または、テキスト ノードからテキストを取得できます。

var word = div.firstChild.childNodes[0].nodeValue;
于 2013-09-01T17:49:13.533 に答える
0

を使用するsubstring()と、indexof()これを行うことができます。

str = '<a href = "#homecoupon" class ="current">COUPONS</a>';

// get rid of </a> assuming the string always ends with it
var x = str.substring(0,str.length-4);

// use the fixed part to get the value you want
alert(x.substring(x.indexOf('class ="current">')+17))

また

str = '<a href = "#homecoupon" class ="current">COUPONS</a>';
fixedPart = 'class ="current">';

// use the fixed part to get the value you want assuming str always ends with </a>
alert(str.substring(str.indexOf(fixedPart)+fixedPart.length, str.length-4))
于 2013-09-01T18:02:06.603 に答える