Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 找到一个单词并从以下href获取url_Javascript_Node.js - Fatal编程技术网

Javascript 找到一个单词并从以下href获取url

Javascript 找到一个单词并从以下href获取url,javascript,node.js,Javascript,Node.js,我有: var text='blablablablablablabla; 如何获取类bla后面的第一个URL 抱歉,忘了提到我在node.js的服务器端使用它。因此,我基本上将HTML作为字符串在nodejs中使用。可能是regex?如果这是bla类的第一个元素,请尝试 var text = '<p class="bla">blablabla<a href="/blabla">blabla</a></p><p class="class2"&

我有:

var text='

blablablabla

blablabla

如何获取类
bla
后面的第一个URL


抱歉,忘了提到我在node.js的服务器端使用它。因此,我基本上将HTML作为字符串在nodejs中使用。可能是regex?

如果这是
bla
类的第一个元素,请尝试

var text = '<p class="bla">blablabla<a href="/blabla">blabla</a></p><p class="class2">blablabla<a href="/blabla">blabla</a></p>';
var text='

blablablabla

class=“class2”>blablabla

' var parser=新的DOMParser(); var doc=parser.parseFromString(text,“text/html”); log(doc.getElementsByClassName('bla')[0].getElementsById('a')[0].href);
PS:我把代码用引号括起来。

请不要使用正则表达式。:)

HTML不是一种常规语言,因此必须使用HTML解析器。是推荐的,因为它是最快的。这应该做到:

var text = '<p class="bla">blablabla<a href="/blabla">blabla</a></p><p>class="class2">blablabla<a href="/blabla">blabla</a></p>'
var parser = new DOMParser();
var doc = parser.parseFromString(text, "text/html");
console.log(doc.getElementsByClassName('bla')[0].getElementsById('a')[0].href);
var htmlparser=require(“htmlparser2”)
var seen_bla=错误
var结果
var parser=新的htmlparser.parser({
onopentag:函数(名称、属性){
如果(attribs.class=='bla'){
看见了吗
}
如果(名称=='a'&&seed_bla&&result==null){
结果=attribs.href
}
},
onend:function(){
console.log(结果)
}
})
write(“

blablabla

blablabla

”) parser.end()
看起来您希望获得一个链接,该链接是class
bla
元素的子元素,对。我刚刚补充说我正在node.js中使用它。您可以使用。然后您必须使用或使用正则表达式。
var htmlparser = require("htmlparser2")

var seen_bla = false
var result

var parser = new htmlparser.Parser({
  onopentag: function(name, attribs){
     if (attribs.class === 'bla') {
        seen_bla = true
     }
     if (name === 'a' && seen_bla && result == null) {
        result = attribs.href
     }
  },
  onend: function() {
     console.log(result)
  }
})

parser.write('<p class="bla">blablabla<a href="/blabla">blabla</a></p><p class="class2">blablabla<a href="/blabla">blabla</a></p>')
parser.end()