正则表达式使用JQuery查询

时间:2014-01-28 16:08:06

标签: jquery regex web

以下列格式使用此格式的jQuery:

Array.prototype.slice.call($("noscript+script")).map(function (v) {
    return v.textContent;
})

在以下网页上:http://www.redcoon.it/B404813-StarTech-ST122UTPAEU-Estensore-segnale_Altri-Accessori

我正在尝试查询产品的价格,但我不确定我需要使用什么正则表达式才能从我在网页上运行上述代码行时获得的大结果中获得价格< / p>

我试过了:

Array.prototype.slice.call($("noscript+script")).map(function (v) {
    return v.textContent.replace(/[^\d\d\d\.\d\d]/gi, "");
})

然后我也得到了所有其他数字和句号。请帮忙

1 个答案:

答案 0 :(得分:1)

尝试类似:

\d+\.?\d+

这匹配1个或更多数字,后跟可选的小数点(如果你想要要求小数点,则删除?),然后是1位或更多位数。

var reg = /(\d+\.?\d+)/

var text = "sdg gsfdgdf gsg. rsgrdg. sgrgsrg sioig. sgrsrg 12.34 sergsrg. grgrgss gsgrmnoijr sikmg. rgsrgsrg 5.33 grsrgrg srgsrg.";

console.log(reg.exec(text));

请参阅fiddle

您将看到记录的是一个包含所有价格的数组。

您可以通过使用适当的量词替换+来修改以限制字符数。所以要匹配你原来的建议:

var reg = /([^\d]\d{3}\.\d{2})/

匹配3个数字,一个(现在需要)小数位,然后再输入2个数字。请注意[^\d]会阻止它匹配较长编号中的最后5位数,例如1122.44。

编辑:如果你需要匹配@JoaoRaposo建议的单个数字,你可以这样做:

 var reg = /(\d+\.?\d*)/
相关问题