从包含节点的字符串中提取城市名称

Ahm*_*lla 0 javascript arrays string node.js

我的脚本从用户收到一个包含城市名称或多个的字符串,我想提取城市名称.我当前的代码将字符串拆分为基于空格的单词,但如果城市名称是两个不起作用的单词.我可以有一个预期的城市名称数组,我希望匹配该数组的字符串的城市名称,有没有可能的方式,而不必使用神经语言处理技术?

var cities = ['Cairo', 'Dubai', 'San Francisco']
// possible strings
var user_string = 'traveling to Cairo'  // result ['Cairo']
var user_string = 'will leave San Francisco to Dubai late'   // result ['San Francisco', 'Dubai']
Run Code Online (Sandbox Code Playgroud)

gur*_*372 8

创建RegExp并使用match

user_string.match(new RegExp( cities.join("|"), "gi" ) )
Run Code Online (Sandbox Code Playgroud)

演示

var fnMatches = ( cities, str ) => str.match(new RegExp( cities.join("|"), "gi" ) );
var cities = ['Cairo', 'Dubai', 'San Francisco'];
console.log( fnMatches( cities, "traveling to Cairo" ) );
console.log( fnMatches( cities, "will leave San Francisco to Dubai late" ) );
Run Code Online (Sandbox Code Playgroud)