javascript html正则表达式

javascript html正则表达式,javascript,regex,parsing,Javascript,Regex,Parsing,我正在努力学习javascript中的正则表达式解析 我需要用“span”来读课文 标准状态应该是“活着” 谢谢 正则表达式?jQuery让它变得微不足道: alert($('span.item_color_success').html()); 正则表达式?jQuery让它变得微不足道: alert($('span.item_color_success').html()); 如果您真的想使用regexp,您可以使用: var text = req.responseText.replace

我正在努力学习javascript中的正则表达式解析

我需要用“span”来读课文

标准状态应该是“活着”


谢谢

正则表达式?jQuery让它变得微不足道:

alert($('span.item_color_success').html());

正则表达式?jQuery让它变得微不足道:

alert($('span.item_color_success').html());

如果您真的想使用regexp,您可以使用:

var text   = req.responseText.replace('\n', '')
  , status = text.match(/<span class="item_color_success">(.*)<\/span>/)[1]

standard_status.label = status
var text=req.responseText.replace('\n','')
,status=text.match(/(.*)/)[1]
标准_status.label=状态
您需要替换换行符,因为js没有将换行符与
*
/.*/m
正确匹配


希望这能有所帮助。

如果您真的想使用regexp,您可以使用:

var text   = req.responseText.replace('\n', '')
  , status = text.match(/<span class="item_color_success">(.*)<\/span>/)[1]

standard_status.label = status
var text=req.responseText.replace('\n','')
,status=text.match(/(.*)/)[1]
标准_status.label=状态
您需要替换换行符,因为js没有将换行符与
*
/.*/m
正确匹配


希望有帮助。

将响应解析为HTML片段:

> html = $('<div/>').html(req.responseText)
> $('.item_color_success', html).text()
"Alive"
>html=$('').html(req.responseText)
>$('.item_color_success',html).text()
“活着”

将响应解析为HTML片段:

> html = $('<div/>').html(req.responseText)
> $('.item_color_success', html).text()
"Alive"
>html=$('').html(req.responseText)
>$('.item_color_success',html).text()
“活着”

如果您不想添加额外的Jquery依赖项,可以使用纯Javascript来完成

var req = new XMLHttpRequest();  
req.onload = function() {  
  alert(this.responseXML.title);
  if(req.status == 200){
      standard_status.label = req.responseXml.getElementsByClassName('item_color_success')[0].textContent;
  }
}  
req.open("GET", 'http://www.example.com/');  //must use async request for HTML
req.responseType = "document";  
req.send();

我没有对此进行测试,但应该不会太远。

如果您不想添加额外的Jquery依赖项,可以使用纯Javascript完成

var req = new XMLHttpRequest();  
req.onload = function() {  
  alert(this.responseXML.title);
  if(req.status == 200){
      standard_status.label = req.responseXml.getElementsByClassName('item_color_success')[0].textContent;
  }
}  
req.open("GET", 'http://www.example.com/');  //must use async request for HTML
req.responseType = "document";  
req.send();

我没有对此进行测试,但应该不会太远。

您不应该使用正则表达式解析html:)您不应该使用正则表达式解析html:)standard_status.label=。。对不起,我不明白如何使用你的代码。我对javascript非常陌生。
standard\u status.label=$('div.item\u color\u success').html()
。但是您可能应该使用
.text()
而不是
.html()
Oks,但是“req”的用法在哪里呢?Js知道$req?。。。编辑:标准_status.label=req.responseText;工作正常,但是整个html都显示出来了。好问题:D$不是req,而是jquery方法$('div.item_color_success')将访问dom元素(第二个跨度)。但是,只有将接收到的数据附加到dom.standard_status.label=。。对不起,我不明白如何使用你的代码。我对javascript非常陌生。
standard\u status.label=$('div.item\u color\u success').html()
。但是您可能应该使用
.text()
而不是
.html()
Oks,但是“req”的用法在哪里呢?Js知道$req?。。。编辑:标准_status.label=req.responseText;工作正常,但是整个html都显示出来了。好问题:D$不是req,而是jquery方法$('div.item_color_success')将访问dom元素(第二个跨度)。但这只有在将接收到的数据附加到dom中时才起作用。如果jquery更快更“干净”,我将使用它。谢谢你的回答,我会留着的。嗯,肯定不是更快,而是更干净。如果您已经在使用jquery(我对firefox扩展没有任何线索),那么就可以使用它。谢谢你的回答,我会留着的。嗯,肯定不是更快,而是更干净。如果你已经在使用jquery了(我对firefox扩展没有任何线索),那么就可以使用它。这就是OP想要的,Swaver2112的想法是正确的,但没有意识到
responseText
是HTML,并且它还没有连接到DOM。这是OP想要的,Swaver2112的想法是正确的,但是没有意识到,
responseText
是HTML,并且它还没有被附加到DOM