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