如何使用正则表达式在jQuery中查找页面中的内容?

时间:2014-04-18 20:51:40

标签: jquery regex replace match template-engine

所以我一直在努力做$(document).match(/ regexp /);我一直得到“未定义不是一个功能”

当我执行$(document)html()。match(/ regexp /); TypeError:无法读取未定义

的属性“匹配”

我正在使用的正则表达式是/^ [〜{。*?}} 我想要做的就是在html文档中搜索[〜{任何类型的输入}〜],这样我就可以使用jQuery用正确的代码替换它。基本上,我将创建自己的模板引擎。当前的,要么不做我需要的,要么是过度膨胀。

<body>

    [~{ header }~]


    <p>This is the home page</p>


    [~{ footer }~]

</body>

所以我想我不清楚,我需要做的是在“[〜{”和“}〜]”中找到文字。然后将它放在变量中并确定如何处理它之后,我会再次找到整个表达式,但这次我将用其他内容替换它。

所以

[~{ header }~]

我会发现这与匹配或其他东西,将“标题”文本提取到变量中。从那里我将通过一个功能。该函数将返回一些事情,例如检索获取html页面并加载它。但它必须再次找到表达式来替换它。

1 个答案:

答案 0 :(得分:1)

$(document)返回一个jQuery对象,而不是一个字符串。您需要调用html()来获取文档的HTML内容。你可以这样做:

$('body').html(function(contents) {
    return contents.replace(/regexp/, 'replacement');
});

如果你只是想看比赛:

var match = $('body').html().match(/regexp/);
console.log(match);