如何解决正则表达式匹配给定位置/段落中的至少两个单词
我有一个搜索栏,可以搜索地点,我只想在输入值与至少两个单词匹配的情况下返回结果,而不管它们的位置如何。我已经尝试过使用startsWith
,但这只会匹配那些以。开头的人。
如果我要搜索中央公园,可以在搜索栏中输入“纽约中央公园”或“纽约中央公园”,也可以直接输入“中央公园”,它将返回结果,但是如果我只键入在“公园”或“中央”中,不应退还中央公园
解决方法
我设法根据给出的建议进行了此操作,但是代码仍然感觉可以对其进行改进。
const places =['Central Park','Arches National Park','Bryce Canyon National Park']
const searchTerm = "Central Park"
checkIfSearchTermMatches(places,searchTerm)
function checkIfSearchTermMatches(places,searchTerm) {
let matchedPlace = null;
for (place of places) {
let splitPlace = place.split(" ");
let matchCount = 0;
for (name of splitPlace) {
var matchWordRegex = new RegExp(name,"i");
const nameMatches = searchTerm.match(matchWordRegex);
if (nameMatches && nameMatches !== null) {
matchCount++;
}
}
if (matchCount >= 2) {
matchedPlace = place;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。