解析大字符串以调用Node中的JS函数

Parse large strings to invoke JS functions in Node

本文关键字:Node 中的 JS 函数 调用 字符串      更新时间:2023-09-26

这是我第一次尝试构建Node模块;目的是解析文件(通常是HTML文件),查找特定的匹配项,并对这些匹配项进行处理。

我使用fs模块到readdir,找到该目录中的每个文件,然后将每个文件传递给readFile,它将文件的内容作为字符串返回。

我想要实现的是搜索文件的内容(或长字符串)的特定匹配,获得任何相关参数,然后将文件及其参数传递给一个函数,该函数将进行其他操作。在我看来,只在HTML中查找数据属性是有意义的。例如,如果我要搜索这个字符串:

<a href="/">
    <img class="site-logo" src="..." data-option="site-logo true" />
</a>

我想找到data-option并将其与site-logo true和文件名一起传递给函数作为参数。

在我的搜索中,我遇到了使用indexOf()search()方法并传递字符串数组来匹配,但我担心对于较大的文件,这会变得非常阻塞(最终我将学会使用async模块…),所以我想知道so社区是否有任何聪明的建议。

我应该用像cheerio这样的东西吗?如果是这样,我如何将它用于其他文件类型(非html)?也许是正则表达式?

谢谢你的帮助!

您应该真正使用像cheerio这样的东西来处理HTML内容。对于非html资源,它取决于格式,npm上可能有模块来处理其他格式。如果没有,regex可能是您的下一个最佳选择。