Javascript jQuery选择-过滤数字、引号和第一个空格?
我有一个chrome扩展,可以访问多个网站上的数据,创建数据列表。特别是有一个网站,其数据呈现方式非常笨拙。我目前正在使用以下方法筛选所有其他网站上需要的数据:Javascript jQuery选择-过滤数字、引号和第一个空格?,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我有一个chrome扩展,可以访问多个网站上的数据,创建数据列表。特别是有一个网站,其数据呈现方式非常笨拙。我目前正在使用以下方法筛选所有其他网站上需要的数据: addThings: function (elemone, elemtwo, elemthree) { var self = this; $(elemone).each(function(i, el) { var values = $(elemtwo, this).text();
addThings: function (elemone, elemtwo, elemthree) {
var self = this;
$(elemone).each(function(i, el) {
var values = $(elemtwo, this).text();
if ($(elemthree, this).text().indexOf('2') >= 0){
self.list.push(values);
}
self.list.push(values);
});
},
此处的问题在于,来自该特定网站的数据如下:
2一些价值
与其他网站不同的是,在与纯文本相同的HTML代码/文本/等块中
我需要抓住你
一些价值
和数字2分开。value变量需要等于某个值,elemthree部分需要获取这两个值。元素三
数字将始终为1或2,但某些值有时可能包含数字7。我如何在不破坏与其他网站兼容性的情况下对其进行过滤
编辑:对不起,如果这是混淆。。。让我试着澄清一下。大多数网站都有我需要的elemthree值,它嵌套在自己的DIV或CLASS中。这一个网站有我需要的elemtwo值和elemtree值在相同的纯文本DIV/类中,没有任何分离
示例站点1:
<div id="main">
<div class="myvalue">Some Value</div>
<div class="myothervalue">2</div>
</div>
示例站点2:
<div id="main">
<div class="bothvalues">"2 Some Value"</div>
</div>
在这里,我很难正确地将它们从一长串的值中分离出来,而这个网站却没有例外,我试图通过使我的代码与这两个网站兼容来避免这种情况,以便以后可以根据需要添加新网站。我可以很好地抓取数字2,但是抓取一些值,包括空格,而不抓取引号和2是很困难的
我相信我正在寻找的是一些正则表达式来过滤“2”位-检查第一个字母字符之前是否有任何内容,并忽略它。是否需要此工作
addThings: function (elemone, elemtwo, elemthree) {
var self = this;
$(elemone).each(function(i, el) {
if (elemthree){
var values = $(elemtwo, this).text();
if ($(elemthree, this).text().indexOf('2') >= 0){
self.list.push(values);
}
self.list.push(values);
}
else {
var v = $(elemtwo, this).text();
var spaceIndex = v.indexOf(' ');
var digit = v.substring(1, spaceIndex);
var someValue = v.substring(spaceIndex, v.length - spaceIndex + 1);
if (digit === '2'){
self.list.push(someValue);
}
}
});
},
然后你可以打电话
addThings('#main','.bothvalues');
这对我来说有点不清楚…试图澄清一下。很抱歉造成混淆。我正在寻找一个解决方案,是普遍适用于所有涉及的网站。最常见的情况是我上面使用的示例,我希望有一个函数可以在不破坏模型的情况下同时适用于这两种情况。我相信,我需要一个正则表达式来提取我需要的数据,而不是在异常中进行黑客攻击。这很公平。不知道你在写什么样的扩展,但当我过去尝试编写类似的工具时,我发现没有通用的解决方案,一个站点将有3个div,另外2个div,具有不同的类,或者没有类,或者现有站点将在下周从3个div更改为2个div,等等,因此,我无法找到一个适用于所有站点的单一解决方案。相反,我必须实现一个类似于我在这里发布的解决方案,一个适用于不同站点的解决方案,或者一个你们称之为“黑客”的解决方案。希望您能找到一个通用的解决方案,如果有,请随时与我们联系。
addThings('#main','.bothvalues');