javascript - 如何在javascript中按单词序列匹配两个字符串?
问题描述
需要找到与给定字符串最匹配的字符串。
list = ['Mr. Adam Smith Junior', 'Anna Smith Jr.', 'Adam Jhon Smith', 'Smith Adam'];
str = 'Adam Smith Jr.';
// output: 'Mr. Adam Smith Junior'
我尝试过对单词进行标记,对于列表中的每个项目,它都与 2tokens(Adam/Smith/Jr.) 匹配。但我的预期输出是列表 [0]。所以我需要一个解决方案来通过最匹配的单词序列找到匹配的字符串。
解决方案
// Your code request - Updated code.
var list = ['Mr. Adam Smith Junior', 'Anna Smith Jr.', 'Adam Jhon Smith', 'Smith Adam'];
var str = 'Adam Smith Jr.';
// Updated code.
str = str.split(' ');
var i = 0, j = 0;
var matched = [];
// First loop for your `list` variable array to go through each string.
while(i < str.length){
// Second loop for your `str` variable to match each part of string with your `list` variable's each string.
for(j=0;j < list.length;j++){
var match = new RegExp( str[i], 'g' );
if(list[j].match(match)){
// Find exact match - Your code goes here.
if(!matched.includes(list[j])){
matched.push(list[j]);
}
}
}
i++;
}
// Your result of find the all matched values from `list` variable.
console.log(matched);
推荐阅读
- xml - 使用带有文本文件的 awk 命令创建 XML
- php - 如何根据选中的复选框提交多个数组?
- javascript - 仅显示该日期的信息
- r - 这个混合效应模型的最佳“公式”是什么
- python-3.x - 在 Strava API v3 中获取所有运动员活动的问题
- javascript - 转换对象的json数组
- java - 如何更改按下按钮时 recyclerView 项目的颜色?
- python - 如何自动将数据推送到我的网站并相应地重新呈现?
- java - CompletableFuture - 并行运行多个休息调用并获得不同的结果
- c# - 使用 LINQ 如何从列表中的列表中进行选择