簡體   English   中英

測試字符串中的多個單詞

[英]Test for multiple words in a string

我有一個像這樣的字符串:

var str = "FacebookExternalHit and some other gibberish";

現在,我有一個字符串列表來測試它們是否存在於str 它們是數組格式:

var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"];

搜索str並查看是否存在任何bots值的最快和/或最短的方法是什么? 如果這是最好的方法,則正則表達式很好。

使用join您可以執行以下操作:

var m = str.match( new RegExp("\\b(" + bots.join('|') + ")\\b", "ig") );
//=> ["FacebookExternalHit"]

我不知道正則表達式一定是要走的路。 Array.prototype. some()Array.prototype. some() Array.prototype. some()

 var str = "FacebookExternalHit and some other gibberish"; var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"]; var isBot = bots.some(function(botName) { return str.indexOf(botName) !== -1; }); console.log("isBot: %o", isBot); 

常規的for循環甚至更快

 var str = "FacebookExternalHit and some other gibberish"; var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"]; var isBot = false; for (var i = 0, ln = bots.length; i < ln; i++) { if (str.indexOf(bots[i]) !== -1) { isBot = true; break; } } console.log("isBot: %o", isBot); 

暫無
暫無

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

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