我尝试使用 / session = s(。+?)"> / g 来搜索此xml文档中的字符串:
<html><body><p><table border="1">
<tr>
<td><a href="viewSessionLog.jsp?session=s0001">s0001</a></td>
</tr>
<tr>
<td><a href="viewSessionLog.jsp?session=s0002">s0002</a></td>
</tr>
<tr>
<td><a href="viewSessionLog.jsp?session=s0003">s0003</a></td>
</tr>
<tr>
<td><a href="viewSessionLog.jsp?session=s0004">s0004</a></td>
</tr>
</table>
</p>
</body>
</html>
我得到了:
`0001`
`0002`
`0003`
`0004`
但我只想要&#39; 0004&#39;
如何才能使用正则表达式?
答案 0 :(得分:0)
var lastMatch = '',
str = document.documentElement.innerHTML,
regex = /session=s(.+?)">/g,
captured;
while (captured = regex.exec(str))
lastMatch = captured[1];
这是一个小提琴:http://jsfiddle.net/f4n319d3/
如果由于某种原因你不想循环exec
函数,我认为唯一的另一个选择是使用replace
函数并在其中分配lastMatch
以便你将留下最后一场比赛:
var lastMatch = '',
str = document.documentElement.innerHTML,
regex = /session=s(.+?)">/g;
str.replace(regex, function(str, match) {
lastMatch = match;
});
在这两种情况下,lastMatch
都会为您提供最后一个匹配的捕获组。