gpt4 book ai didi

javascript - 在javascript中用正则表达式解析html文本?

转载 作者:行者123 更新时间:2023-12-02 14:31:17 25 4
gpt4 key购买 nike

我意识到 HTML 无法用正则表达式解析。但是,我有一个字符串,其中包含来自典型亚马逊网页的一些源代码。

            <script type="text/javascript">
P.when("A", "jQuery").execute(function(A, $) {
var pageState = A.state('ftPageState');
if (typeof pageState === 'undefined') {
pageState = {};
}
if (pageState["fast-track-message"]) {
pageState["fast-track-message"].stopTimer();
}

<li> 48 pages</li>

pageState["fast-track-message"] = new fastTrackCountDown(20710,"fast-track-message");
A.state('ftPageState', pageState);
});
</script>


我想捕获48。每个数字后面都会跟着pages</li>我怎样才能匹配这个?

尝试

var string_tester = String(datastuff.html());
var regex_tester = string_tester.match(/\d+ pages<\/li>/);

最佳答案

如果您知道它将始终位于列表元素中,请尝试以下操作:(<li>\s*)([0-9]+)(\s*pages\s*</li>) (48 将在 $2 中。但是,这不能适应数字格式。这应该足够通用: (<li>\s*)([0-9,\.\-\(\)]+)(\s*pages\s*</li>) 。我应该注意到,亚马逊有一个卖家和发布商 API,可以为您提供更稳定的途径根据您的用例进行追求。

编辑:我检查了几个亚马逊页面,看看是否有更好的方法来获得你想要的东西,并注意到我检查的页面没有数字,只是这样:

                <script type="text/javascript">
P.when("A", "jQuery").execute(function(A, $) {
var pageState = A.state('ftPageState');
if (typeof pageState === 'undefined') {
pageState = {};
}
if (pageState["fast-track-message"]) {
pageState["fast-track-message"].stopTimer();
}
pageState["fast-track-message"] = new fastTrackCountDown(57592,"fast-track-message");
A.state('ftPageState', pageState);
});
</script>

我不知道你在做什么,但我想提一下,以防它使你所做的假设无效。

关于javascript - 在javascript中用正则表达式解析html文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com