NodeJS拆分行将字符串分隔为对象

时间:2013-12-01 22:10:27

标签: regex node.js

我正在加载一个如下所示的文件内容:

one-apple
two-banana
three-orange

我想要返回一个键值对象。这是我到目前为止所做的,但它只返回一个空对象:

var regex = /([\\w-]+)\\-([\\w-]+)/g;
var match, results = {};

while((match = regex.exec(data)) !== null){
   results[match[1]] = match[2];
}

1 个答案:

答案 0 :(得分:1)

代码中唯一错误的是regexp。它应该是:

var regex = /([\w-]+)\-([\w-]+)/g;
regexp中的

\\表示\符号本身。因此,[\\w]表示\w而非[a-zA-Z_]正如您所料。

只有一个原因可以转义每个\符号 - 如果要将regexp存储在字符串中。因此,以下代码也可以使用:

var regex = new RegExp('([\\w-]+)\\-([\\w-]+)', 'g');