我正要尝试从 XMLHttpRequest 返回的文本中解析标签,但我无法让它工作。 我已经在 w3schools 编辑器 (http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_regexp_i) 中对其进行了测试,当文本没有换行符但我卡住了时我可以在其中工作:
<script language="javascript" type="text/javascript">
var req = new XMLHttpRequest();
req.open('GET', 'www.mysite.com/index.html', false);
req.onreadystatechange=function() {
if (req.readyState==4) {
var text = req.responseText;
var tag = /<div class='classdef'>(.*?)<div/gm;
var mt = tag.exec(text);
alert(mt);
return;
}
};
req.send(null);
</script>
警报框充其量只是写入原始正则表达式 "/(.*?)
有人指出我做错了什么吗? :)
亲切的问候。
更新的解决方案
感谢您的所有建议,在我的代码中似乎不止一件事。我的目标是将数据从另一个页面输入到一个页面的一部分。我最终按照您的建议使用了 jquery 来实现这一目标:
<div id="IdOfTagToAddTo"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
<script>
$('#IdOfTagToAddTo').load('somePageInMyDomain.html #SomeIdOfATag');
</script>
我意识到我应该更明确我最初的目标。 :S。为此,我很抱歉,因为我知道这总是会引起困惑:(。 感谢你们给我的所有建议。从现在开始,我正在进入 jQuery 的新世界(至少对我来说 :))。
亲切的问候
最佳答案
扩展 gor 的答案。
使用 jQuery:
$(req.responseText).find('div.classdef').text()
使用拆分(无正则表达式),有点神秘:
req.responseText.split("<div class='classdef'>")[1].split('</div>')[0]
关于Javascript RegEx 和 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5056107/