str = <a href = "#homecoupon" class ="current">COUPONS</a>
如何从 str 中获取 COUPONS 一词。#homecoupon 这个词可能会更改为其他词,因此我无法执行检索第 n 个位置值的子字符串方法。将class ="current">COUPONS</a>
永远是固定的。
有没有办法可以回溯并检索最后一个单词。
str = <a href = "#homecoupon" class ="current">COUPONS</a>
如何从 str 中获取 COUPONS 一词。#homecoupon 这个词可能会更改为其他词,因此我无法执行检索第 n 个位置值的子字符串方法。将class ="current">COUPONS</a>
永远是固定的。
有没有办法可以回溯并检索最后一个单词。
在浏览器中解析 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;
如果它是一个实际字符串而不是网页的一部分:
var str = '<a href = "#homecoupon" class ="current">COUPONS</a>';
var word = str.match(/"current">(.*?)</);
if(word) word = word[1]; //== COUPONS
或者,如果您使用的是 jQuery,并且这是一个实际的网页,您可以访问:
$('a.current').each(function(){
alert($(this).text());
});
使用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))