Javascript将regex与classname匹配,并在数组中返回innerHTML值
我正在尝试开发javascript代码,将每个Span标记与类名“a-size-base a-color-price s-price a-text-bold”匹配,并在数组中返回它的innerhtml。所以基本上我需要数组列表中每个垃圾邮件的价格 有人能告诉我怎么做吗?因为我不知道如何把match函数和类名放在一起,并获取它的innerHTMLJavascript将regex与classname匹配,并在数组中返回innerHTML值,javascript,regex,match,Javascript,Regex,Match,我正在尝试开发javascript代码,将每个Span标记与类名“a-size-base a-color-price s-price a-text-bold”匹配,并在数组中返回它的innerhtml。所以基本上我需要数组列表中每个垃圾邮件的价格 有人能告诉我怎么做吗?因为我不知道如何把match函数和类名放在一起,并获取它的innerHTML 16.90欧元 20,09欧元 19.90欧元 12,90欧元您可以通过正则表达式获得span/class=value的价格。 你要找的是第二组 /“
16.90欧元
20,09欧元
19.90欧元
12,90欧元
您可以通过正则表达式获得span/class=value的价格。你要找的是第二组
/“][^”][^”]*“][^”][^']*”)*?\sclass\s*=\s*(?:(['“])\s*a-size-base\s*a-color-price\s*s-price\s-price\s*a-text-bold\s*\1))\s+(?:“[\s\s]*?”[s\s]*?“[\s]*?”[s]++>([\s\s]*)/
(警告,使用正则表达式解析html可能有危险)
刮刀系列格式:
< span
(?= # Assertion (a pseudo atomic group)
(?: [^>"'] | " [^"]* " | ' [^']* ' )*?
\s
class \s* = \s* # class attribute
(?:
( ['"] ) # (1), # quote begin
\s*
a-size-base \s* a-color-price \s* s-price \s* a-text-bold # value to find
\s*
\1 # quote end
)
)
\s+
(?: " [\S\s]*? " | ' [\S\s]*? ' | [^>]*? )+
>
( [\S\s]*? ) # (2), content
</span \s* >
"'] | " [^"]* " | ' [^']* ' )*?
\
class\s*=\s*#class属性
(?:
(['”)#(1),#引用开始
\s*
要查找的a-size-base\s*a-color-price\s*s-price\s*a-text-bold#值
\s*
\1#报价结束
)
)
\s+
(?:“[\S\S]*?”|“[\S\S]*?”|[^>]*?)+
>
([\S\S]*?)#(2),内容
如果您的输入与所提供的示例类似,则应该可以:
// Since .querySelectorAll returns a NodeList and we want an
// Array we'll use the spread operator to make it one.
let prices = [...document.querySelectorAll('span.size-a-base')]
.map(el => {
// sample input was EUR 19,90 so we'll split on the space
// and grab the price.
let [currency, price] = el.textContent.trim().split(' ');
return price;
});
请在您的问题中发布您尝试的代码。
var prices=[…document.queryselectoral('span.a-size-base')].map(el=>el.textContent.split('')[1])代码>我应该在…document.queryselectoral前面写些什么吗?这有什么用?它像document.getElementbyClassName吗?@JPqnp它像CSS一样工作selector@Jared史密斯:谢谢!那代码帮了大忙!但是有没有一种方法可以选择两个以上的字符,因为在代码的末尾是[1],它允许我只打印第一个字母字符,但我需要第一个、第二个、第三个和第四个字符。