簡體   English   中英

從帶有節點的字符串中提取城市名稱

[英]extract city name from a string with node

我的腳本從用戶那里接收了一個包含城市名稱或多個城市名稱的字符串,我想提取城市名稱。 我當前的代碼根據空格將字符串拆分為多個單詞,但是如果城市名稱是兩個單詞,則將不起作用。 我可以有一個預期的城市名稱數組,並且我想將該字符串與該數組的城市名稱進行匹配,有什么可能的方法而不必使用神經語言處理技術?

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']

創建一個RegExp並使用match

user_string.match(new RegExp( cities.join("|"), "gi" ) )

演示版

 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" ) ); 

您應該使用正則表達式來匹配城市

for(i=0; i < cities.length; i++) {
  if(user_string.match(new RegExp(cities[i], 'i'))){
    console.log(cities[i]);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM