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

时间:2014-05-25 18:05:04

标签: javascript regex node.js parsing indexof

这是我第一次尝试构建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)?也许是正则表达式?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

对于HTML内容,您应该使用cheerio之类的内容。对于非HTML资源,它取决于格式,npm上可能有模块来处理那些其他格式。如果没有,正则表达式可能是你的下一个最佳选择。