gpt4 book ai didi

javascript - chrome 用户脚本中的正则表达式问题

转载 作者:行者123 更新时间:2023-11-29 20:18:37 26 4
gpt4 key购买 nike

这可能是一个菜鸟问题,但我已尝试在此处和其他网站上找到答案,但仍未找到答案。至少不是这样我理解到足以解决问题。

这用于 chrome 的用户脚本中。

我正在尝试从字符串中选择一个日期。该字符串是我设法选择的标签中的 innerHTML。 html 结构,还有字符串,是这样的:(div 是选定的标签,所以里面的所有内容都是字符串的内容)

<div id="the_selected_tag">  
<a href="http://www.something.com" title="something xxx">link</a>
" 2011-02-18 23:02"
<a href="http://www.somthingelse.com" title="another link">thing</a>
</div>

如果您有一个解决方案可以帮助我选择没有这种模糊的日期,那也很棒。

JavaScript:

var pattern = /\"\s[\d\s:-]*\"/i;
var tag = document.querySelector('div.the_selected_tag');
var date_str = tag.innerHTML.match(pattern)[0]

当我将此脚本用作 html 文档上的普通 javascript 进行测试时,它运行良好,但是当我将它作为 userscript 安装在 chrome 中时,它找不到模式。

我不知道如何解决这个问题。

最佳答案

将 innerHTML 转储到控制台。如果它看起来不错,那么开始构建从更通用的 (/\d+/) 到更具体的正则表达式,并将所有内容输出到控制台。有一堆不同编码的不同引号字符,许多不同类型的破折号。

[\d\s:-]* 不是一个很好的选择,因为它会匹配 "1"""。我宁愿写一些尽可能具体的东西:

/" \d{4}-\d{2}-\d{2} \d{2}:\d{2}"/

(此外,document.querySelector('div.the_selected_tag') 会在您的示例中返回 null,但您可能想编写 class 而不是 id)

关于javascript - chrome 用户脚本中的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047071/

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