javascript - 如何做多个正则表达式,每次都细化结果?

标签 javascript regex greasemonkey

为什么我不能将正则表达式输出到变量,然后再次对其运行正则表达式?

我正在编写一个greasemonkey javascript,它获取一些原始数据,对其运行一些正则表达式,然后对其运行更多正则表达式以优化结果:

// I tried this on :: http://stackoverflow.com/
var tagsraw = (document.getElementById("subheader").innerHTML);
alert(tagsraw);

获取原始数据(上面的代码)有效

var trimone = tagsraw.match(/title\W\W\w+\s\w+\s\w+\s\w+\s\w+/g);
alert(trimone);

运行正则表达式一次有效(上面的代码);但运行(下面的代码)不会?

var trimtwo = trimone.match(/\s\w+\s\w+\s\w+\s\w+/g);
alert(trimtwo);

有人可以告诉我我的代码/方法有什么问题吗?

最佳答案

第一个匹配有效的原因是innerHTML 返回一个字符串。

但是匹配返回一个数组,因此将其视为一个:

for (var i=0; i<trimone.length; i++)
{
    var trimtwo = trimone[i].match(/\s\w+\s\w+\s\w+\s\w+/g);
    alert(trimtwo);
}

编辑:

尝试一下这个代码,我认为这更接近你想要实现的目标:

var trimone = tagsraw.match(/title\s*=\s*".*"/g);
alert(trimone);

for (var i=0; i<trimone.length; i++)
{
    alert(trimone[i]);
}

关于javascript - 如何做多个正则表达式,每次都细化结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473820/

相关文章:

javascript - anchor 标记上的 onclick 事件在 IE 中有效,但在 Firefox 和 Chrome 中无效

javascript - React - 像书页一样的 CSS Transition

java - java 变量的正则表达式

python - 优雅的字符串方法(如何变得更Pythonic)

javascript - 识别没有 ID 或类的隐藏表单值

javascript - 如何使用 Greasemonkey(或 Adblock)阻止 google.com 将光标从 URL 上移开?

javascript - ngInfiniteScroll 不工作

Javascript:网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)

Python 将字符串精确地拆分为一个空格。如果双空格使 "word"不是 "word"

javascript - 如何用用户脚本覆盖警报功能?