数据库数组到string转换分割| 标志

我试图从数据库中过滤一些string匹配(),但事件给出数组forms。 我正在使用https://www.npmjs.com/package/node-mysql模块来查询数据库中的列名

con.query('SELECT name FROM droid_hastag_banned', function(error,result){ for (var i = 0; i < result.length; i++) { var arr = result[i].name; } }); 

目前查询输出是,如果我使用每个,否则结果[0]。 结果只有一行

 RT @Alex_TNT @TopU3DAssets @LatestAssetBot @IndieLeverage @Parodossy @GameArtSleuth 

我需要有这个格式

 .match(/^RT|RT|@TopU3DAssets|@LatestAssetBot|@IndieLeverage|@Parodossy|@GameArtSleuth|@Alex_TNT/) 

你可以简单地连接结果:

 result = [{"name":"@Alex_TNT"},{"name":"@TopU3DAssets"},{"name":"@LatestAssetBot"}, {"name":"@IndieLeverage"},{"name":"@Parodossy"},{"name":"@GameArtSleuth"}] result=result.map(function(x){ return x.name; }); exp = "/^RT|RT|"+result.join("|")+"/"; r = RegExp(exp); console.log(r.test("@Alex_TNT")); 

这个小提琴中使用了一个可能的实现。 Array.prototype.join的解释在MDN上find。 Array.prototype.map()被解释为ibd。


说明

您以包含objectsarrayforms得到结果。 除了其他属性外,结果对象还有一个属性name 。 为了仅从对象中提取名称,我使用了Array.prototype.map()方法,该方法只不过是将函数应用于数组的每个成员:在这种情况下return x.name 。 对象数组被mapped到一个string数组。

exp是简单的串联结合使用Array.prototype.join()得到一个forms为"xx|xx|xx"的string。

没有魔法介入;)