如果我将http.responseText
存储在javascript
变量中,例如名为sourcecode
,其中包含我要从中提取更新后的用户名的页面的完整源代码,该怎么做我这样做?
用户名显示在页面源代码中的以下标记中:
<td align="right" valign="center" width="100%"> Your name has been updated to Bob</td>
我希望能够使用split这样的东西来获取用户名,在这种情况下Bob来自页面的源代码并将其设置为名为username的变量。
因此,alert(username)
会警告包含(在这种情况下)Bob
的框。
我不想使用jquery
。
td标签位于:
http://pastebin.com/M4dUzLAa
答案 0 :(得分:0)
这里有两个部分:
在没有jQuery的情况下提取包含数据的td。在现代浏览器中,您有querySelectorAll,因此您可以编写类似usernameTD = document.querySelectorAll("td[align=right]");
的内容。您可能需要根据HTML修改此CSS选择器。
如果您可以修改HTML,请在包含用户名的td中添加ID,以便您可以使用getElementByID
从td文本name = usernameTD[0].nodeValue.replace("Your name has been updated to ", "");
答案 1 :(得分:0)
解析这样的用户名并不理想,但是如果你真的必须这样做,你可以使用以下代码:
var pattern = /Your name has been updated to ([^\<]*)\</;
var match = pattern.exec(sourcecode);
if (match) {
var userName = match[1];
alert(userName);
}
JsFiddle:http://jsfiddle.net/aHQ8P/
请注意,这仅适用于您描述的条件。如果您的名字已更新为更改,或源代码中出现的其他字符串,那么您将开始遇到问题。