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

标签 javascript regex

我意识到 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/

相关文章:

javascript - Jquery 动画不会等到完成

javascript - 什么时候 'this' 不是定义函数的实例?

javascript - 使用设计随机化屏幕上的文本

regex - 选择包含 "some"字的行

regex - 从命令输出中解析 WebSphere JVM 名称的 Windows 脚本

Javascript正则表达式如何实现?

javascript - 在具有每行字符限制和总行数限制的文本区域中包装单词

javascript - 如何根据用户指定的时间填充一个100%的进度条

regex - 查找一个字符串并在某些字符前添加一个字符串

ruby-on-rails - 正则表达式 : only string can be accepted nothing else ?