将用户名从td标记解析为javascript变量

时间:2014-05-06 13:37:16

标签: javascript split xmlhttprequest

如果我将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

2 个答案:

答案 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/

请注意,这仅适用于您描述的条件。如果您的名字已更新为更改,或源代码中出现的其他字符串,那么您将开始遇到问题。