Hy,我有一个很长的csv,我想搜索包含某些单词的字符串,例如:
var str = "Dan Jobsy,Google Analitis,ejobs";
我发现了这个:
(?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*)
将解析CSV并返回单词,我想知道如何扩展它并添加一个条件只返回包含某个字符串的csv中的单词?就像我搜索“oo”一样,它只返回“Google Analitics”,但如果我搜索“job”,它将返回“Dan Jobsy”和“ejobs”
修改
这里没有找到解决方案,除了使用我提供的正则表达式的解决方案,如果我可以自己设法解决这个问题,我会在这里发布ans。
答案 0 :(得分:0)
String.search(pattern):
将RegExp与string匹配,如果找到则返回匹配开头的索引,否则返回-1。
但要获得正则表达式,您需要学习一些正则表达式模式。你可以开始here或google搜索javascript regexp教程
答案 1 :(得分:0)
var str = "Dan Jobsy,Google Analitis,ejobs";
var needle = "job";
var matches = [];
for (i in A = str.match (/(\"(?:[^\"]+|\"\")*\"|[^,]+)(?=$|,)/g)) {
if (A[i].toLowerCase().indexOf (needle.toLowerCase ()) != -1)
matches.push (A[i]);
}
console.log (matches);
输出
[ 'Dan Jobsy', 'ejobs' ]
答案 2 :(得分:0)
要使用分隔符拆分javascript字符串,请使用string.split(str或regex);
所以:
var str = "Dan Jobsy,Google Analitis,ejobs";
var ary_names = str.split(','), i = 0, ary_len = array.length, count = 0;
for (i = 0; i < ary_len; i++){
if (ary_names[i].match(/jobs/i)){ count++; }
}
// count is the # of times jobs was found.
从那里你可以使用循环,indexOf,包含框架等来对数组进行搜索。