Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 在jquery中获取HTML代码的子部分(匹配整个段落,而不是逐行匹配)_Javascript_Jquery_Html_Ajax_Regex - Fatal编程技术网

Javascript 在jquery中获取HTML代码的子部分(匹配整个段落,而不是逐行匹配)

Javascript 在jquery中获取HTML代码的子部分(匹配整个段落,而不是逐行匹配),javascript,jquery,html,ajax,regex,Javascript,Jquery,Html,Ajax,Regex,我从jquery中调用ajax以获取页面的整个html。现在我想提取字符串1和字符串2之间的html代码的一个子部分。我尝试使用正则表达式,但它逐行匹配,因此返回null: data.match(new RegExp("String 1(.*)String 2")); 我可以用什么来匹配整个段落,因为两个字符串出现在不同的行中,我想要这两行之间的部分。我的评论示例: var data='1,它可以跨越多行。2,它可以跨越多行。'; //在内存中创建容器元素 var container=doc

我从jquery中调用ajax以获取页面的整个html。现在我想提取字符串1和字符串2之间的html代码的一个子部分。我尝试使用正则表达式,但它逐行匹配,因此返回null:

data.match(new RegExp("String 1(.*)String 2"));

我可以用什么来匹配整个段落,因为两个字符串出现在不同的行中,我想要这两行之间的部分。

我的评论示例:

var data='1,它可以跨越多行。

2,它可以跨越多行。

'; //在内存中创建容器元素 var container=document.createElement(“div”); //将HTML序列化到容器中 container.insertAdjacentHTML(“beforeed”,data); //使用querySelector抓取段落 var pars=container.queryselectoral(“p”); //使用数组的forEach循环节点列表 Array.prototype.forEach.call(PAR,函数(元素){ console.log(element.textContent);
});我的评论示例:

var data='1,它可以跨越多行。

2,它可以跨越多行。

'; //在内存中创建容器元素 var container=document.createElement(“div”); //将HTML序列化到容器中 container.insertAdjacentHTML(“beforeed”,data); //使用querySelector抓取段落 var pars=container.queryselectoral(“p”); //使用数组的forEach循环节点列表 Array.prototype.forEach.call(PAR,函数(元素){ console.log(element.textContent);
});不要使用
RegExp
从HTML中获取内容。使用
document.createElement
insertAdjacentHTML
在内存中呈现页面,然后使用
DOM
-函数获取所需内容。使用bash时,我通常运行
sed-n-e'/String 1/,/String 2/p'
来获取字符串1和字符串2之间的部分。jquery中没有相应的替代方法吗?是的,有,但是HTML非常复杂,正则表达式不适合这个工作。此外,我不希望创建HTML元素。我已经通过ajax从url获取HTML,我需要从中获取一些数据。所以,你的建议并不适用于我的情况,你只是在记忆中创造它们,这是一种更坚固的方法来获得符合你期望的结果。在这种情况下寻找其他解决方案,你会找到类似的答案。不要使用
RegExp
从HTML中获取内容。使用
document.createElement
insertAdjacentHTML
在内存中呈现页面,然后使用
DOM
-函数获取所需内容。使用bash时,我通常运行
sed-n-e'/String 1/,/String 2/p'
来获取字符串1和字符串2之间的部分。jquery中没有相应的替代方法吗?是的,有,但是HTML非常复杂,正则表达式不适合这个工作。此外,我不希望创建HTML元素。我已经通过ajax从url获取HTML,我需要从中获取一些数据。所以,你的建议并不适用于我的情况,你只是在记忆中创造它们,这是一种更坚固的方法来获得符合你期望的结果。在这种情况下,寻找其他解决方案,你会发现类似的答案。我不能只抓住一个特定的标签,因为HTML是巨大的,我需要一些非常具体的数据。缩小数据范围的唯一方法是使用字符串1和字符串2,因为它们是唯一存在的东西,并给出准确的小节。从那一小节中获取我的数据很容易。问题是如何获得这个子部分,这就是为什么要序列化以便获得子部分。此外,如果我们不知道结构,我们也无法进一步帮助你。我不明白为什么结构如此重要。它只是存储在变量中的文本格式的普通HTML代码。我的问题是,如果不是从字符串中获取子字符串,而是从HTML代码中获取子部分。把这个看作是从一个完整段落中取出一个子段子。我不能只抓取一个特定的标签,因为HTML是巨大的,我需要一些非常具体的数据。缩小数据范围的唯一方法是使用字符串1和字符串2,因为它们是唯一存在的东西,并给出准确的小节。从那一小节中获取我的数据很容易。问题是如何获得这个子部分,这就是为什么要序列化以便获得子部分。此外,如果我们不知道结构,我们也无法进一步帮助你。我不明白为什么结构如此重要。它只是存储在变量中的文本格式的普通HTML代码。我的问题是,如果不是从字符串中获取子字符串,而是从HTML代码中获取子部分。把这看作是从一个段落中取出一个子段落。