Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使用array.filter的正则表达式_Javascript_Regex_Filter - Fatal编程技术网

在javascript中使用array.filter的正则表达式

在javascript中使用array.filter的正则表达式,javascript,regex,filter,Javascript,Regex,Filter,我试图使用正则表达式来过滤csv文件中已放入对象数组的名称列。如果我输入准确的值,一切都正常 我希望“king”匹配的值如下: 金刚,金刚,金刚,金刚,金刚,金刚,金刚11,金刚,金刚,金刚,金刚,金刚,金刚11 我尝试过使用filter和find方法,但我想使用filter返回多个值(如果存在)。我已经尝试了下面的正则表达式,但如果它是正确的,就无法找出正确的sytax const CSVToJSON = require('csvtojson'); const user = "king";

我试图使用正则表达式来过滤csv文件中已放入对象数组的名称列。如果我输入准确的值,一切都正常

我希望“king”匹配的值如下:

金刚,金刚,金刚,金刚,金刚,金刚,金刚11,金刚,金刚,金刚,金刚,金刚,金刚11

我尝试过使用filter和find方法,但我想使用filter返回多个值(如果存在)。我已经尝试了下面的正则表达式,但如果它是正确的,就无法找出正确的sytax

const CSVToJSON = require('csvtojson');
const user = "king";

CSVToJSON().fromFile("./locations.csv").then(source => {
    var found = source.filter(function(v, i){
    return ((v["name"]== /\bking.*/g));
})

您可以使用以下方法

const CSVToJSON = require('csvtojson');


CSVToJSON().fromFile("./locations.csv").then(source => {
    var found = source.filter(function(v, i){
    return ((v["name"].match(/king/g)));
});

但是,您的示例模式显示,king可能位于目标的开头或结尾(bot不能同时具有前缀和后缀)。如果我是对的,那意味着你不需要正则表达式

const CSVToJSON = require('csvtojson');
const user = "king";

CSVToJSON().fromFile("./locations.csv").then(source => {
    var found = source.filter((v, i) => v.startsWith(user) || v.endsWith(user)) 
    /*rest of the code */
});

如果king可以站在任何地方,您只需使用
includes
即可

return ((/king/g).test(v["name"]));


这两种方法都应该有效

这就是有效的方法,我对JavaScript完全陌生:

      const user = args;
      var regex = new RegExp(user, "g");


      CSVToJSON().fromFile("./locations.csv").then(source => {
          var found = source.filter(function(v, i){
          return ((v["name"].match(regex)));
        })    

正则表达式在哪里?这不是在JS中使用正则表达式的方式。很抱歉,我对javascript非常陌生,我曾多次尝试阅读该页面,但我最大的问题是我在做==而不是下面向我指出的匹配。太棒了,非常感谢,这正是我所需要的!除了使用变量外,是否还有其他方法可以做同样的事情?所以king将是一个根据用户输入而变化的变量。@gunner1980:如果搜索
[javascript]正则表达式变量
,您应该会找到该问题的答案。这与
v[“name”]相当。包括(“king”)
,但代价非常高。如果不需要,请不要使用正则表达式。此模式相当于一个简单的
字符串。包括
      const user = args;
      var regex = new RegExp(user, "g");


      CSVToJSON().fromFile("./locations.csv").then(source => {
          var found = source.filter(function(v, i){
          return ((v["name"].match(regex)));
        })