str = <a href = "#homecoupon" class ="current">COUPONS</a>
str から COUPONS という単語を取得する方法。#homecoupon という単語は別の単語に変わる可能性があるため、n 番目の位置の値を取得する部分文字列メソッドを実行できません。はclass ="current">COUPONS</a>
常に修正されます。
最後の n 番目の単語を追跡して取得する方法はありますか。
str = <a href = "#homecoupon" class ="current">COUPONS</a>
str から COUPONS という単語を取得する方法。#homecoupon という単語は別の単語に変わる可能性があるため、n 番目の位置の値を取得する部分文字列メソッドを実行できません。はclass ="current">COUPONS</a>
常に修正されます。
最後の n 番目の単語を追跡して取得する方法はありますか。
ブラウザで 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;
を使用する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))