Javascript 显示在字符串indexOf中找到的子字符串?
我有一个包含大量“子字符串”的数组: 然后是一个字符串,例如:Javascript 显示在字符串indexOf中找到的子字符串?,javascript,arrays,string,substring,indexof,Javascript,Arrays,String,Substring,Indexof,我有一个包含大量“子字符串”的数组: 然后是一个字符串,例如: var str = "Hunt's 100% Natural Tomato Sauce, 15 Oz"; 我可以使用indexOf()和some()在字符串中找到子字符串“番茄酱” 但这只会返回真/假。我需要将变量matchingSubstring设置为字符串中匹配的子字符串 if(???) { var matchingSubstring = substring // tomato sauce } 我走错方向了吗?任何帮助
var str = "Hunt's 100% Natural Tomato Sauce, 15 Oz";
我可以使用indexOf()和some()在字符串中找到子字符串“番茄酱”
但这只会返回真/假。我需要将变量matchingSubstring设置为字符串中匹配的子字符串
if(???) {
var matchingSubstring = substring // tomato sauce
}
我走错方向了吗?任何帮助都会很好。用于获得结果
substrings.find(function(v) {return str.toLowerCase().indexOf(v) >= 0;})
请注意,这将返回第一个匹配项,如果要查找所有匹配项,可以使用 用于获取结果
substrings.find(function(v) {return str.toLowerCase().indexOf(v) >= 0;})
请注意,这将返回第一个匹配项,如果要查找所有匹配项,可以使用 过滤它:
var substring=[“番茄”、“番茄酱”、“番茄酱”、“橙汁”、“青苹果”、“红苹果”、“猫粮”];
var str=“亨特100%天然番茄酱,15盎司”;
const matches=substring.filter(函数(v){return str.toLowerCase().indexOf(v)>=0;});
如果(匹配。长度>0)
log(matches.sort((a,b)=>b.length-a.length)[0]);
其他的
控制台日志(“失败”)代码>过滤它:
var substring=[“番茄”、“番茄酱”、“番茄酱”、“橙汁”、“青苹果”、“红苹果”、“猫粮”];
var str=“亨特100%天然番茄酱,15盎司”;
const matches=substring.filter(函数(v){return str.toLowerCase().indexOf(v)>=0;});
如果(匹配。长度>0)
log(matches.sort((a,b)=>b.length-a.length)[0]);
其他的
控制台日志(“失败”)代码>过滤器返回多个(如果有多个匹配项)结果。既然“番茄酱”是最匹配的子字符串,我怎么让它返回呢?@RyanJay:你可以按字符串长度排序,然后返回第一个/最后一个项目。我将添加它。过滤器返回多个(如果有多个匹配项)结果。既然“番茄酱”是最匹配的子字符串,我怎么让它返回呢?@RyanJay:你可以按字符串长度排序,然后返回第一个/最后一个项目。我要补充一点。
substrings.find(function(v) {return str.toLowerCase().indexOf(v) >= 0;})