我正在加载一个如下所示的文件内容:
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];
}
答案 0 :(得分:1)
代码中唯一错误的是regexp。它应该是:
var regex = /([\w-]+)\-([\w-]+)/g;
regexp中的 \\
表示\
符号本身。因此,[\\w]
表示\
或w
而非[a-zA-Z_]
正如您所料。
只有一个原因可以转义每个\
符号 - 如果要将regexp存储在字符串中。因此,以下代码也可以使用:
var regex = new RegExp('([\\w-]+)\\-([\\w-]+)', 'g');