Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Jquery 从标记中提取URL_Jquery_Node.js_Cheerio - Fatal编程技术网

Jquery 从标记中提取URL

Jquery 从标记中提取URL,jquery,node.js,cheerio,Jquery,Node.js,Cheerio,我希望通过包含以下元素的HTML请求进行解析: <img src="https://pbs.twimg.com/media/...." alt="Embedded image permalink"</a> 我收到错误消息: selector = selector.substr(data[0].length); TypeError: Cannot read property '0' of null 正如我所说,这可能过于复杂了。最简单的(或者只是功能性的)方法是什么?如果我理

我希望通过包含以下元素的HTML请求进行解析:

<img src="https://pbs.twimg.com/media/...." alt="Embedded image permalink"</a>
我收到错误消息:

selector = selector.substr(data[0].length);
TypeError: Cannot read property '0' of null

正如我所说,这可能过于复杂了。最简单的(或者只是功能性的)方法是什么?

如果我理解正确,您想在文本字符串中的
src
字符串后面立即减去
url

你为什么不把所有的文本放在一个变量里,然后再把它分成两部分呢

例如:

    var arrayOfElements = $("#txt").val().split("src=");
    var replacing = arrayOfElements[1].replace(/"/g, "'");
    var url = replacing.split("'");

    //You can now access the element by using url[1]
您可以看到一个工作示例。祝你好运

使用regexp

像这样的事情应该可以做到:

html.match(/<img [^>]*src="([^"]*)"/g)
html.match(/
请参阅此处的工作示例:(注意:Ruby正则表达式与JS正则表达式有点不同,但我不知道后者有这么酷的工具。)


Regexp解释说:

参数(
alt
参数,例如)。当参数中有
字符时,此版本将失败,这可能不应该发生。您可以尝试使用
*
替换此部分,在这种情况下,这将起作用,另一方面,当参数值以
src=
结尾时,此部分将失败

src=“
–这将查找src参数

([^“]*)
捕获内部的URL

–查找值的结尾

有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题


你为什么不使用一些更简单的东西,比如字符串函数和正则表达式?我肯定把事情复杂化了。从正则表达式开始,但我的正则表达式技能不符合要求-放弃它,改为朝这个方向发展。Jeremy,尝试了那个,但得到了未定义的错误?两种方法都更接近了!现在是这样。拿着这个例如,URL:并通过rubular运行HTML。您可以获得页面上的所有图像。我正在尝试将其缩减为结尾追加:large的图像。这就是为什么我尝试匹配此…data URL=“”data resolved URL large=“”>这有帮助吗?
HTML.match(/为了澄清,我只在捕获块中添加了
:large
部分。arghhh…我应该知道:)我是在玩表达式的开头,而不是结尾。我还有最后一个挑战,我正在处理它。我返回Ha:body.match(/https:([^”]*:large)/g);有效----除了它还将匹配一个字符串,其中在:large之后存在尾随字符。
html.match(/<img [^>]*src="([^"]*)"/g)