0

我正在尝试使用 javaScript 在字符串中搜索另一个字符串的任何单词。假设我有以下要搜索的字符串:

"Oxford Street 100 London"

我的搜索词是这样的:

"oxford london"

上面的搜索词应该给我一个匹配,因为oxford并且london是要搜索的字符串的一部分。

我已经尝试过str.indexOf("oxford london") !== -1,但这不起作用,因为它不是要搜索的字符串中的组合词。

有没有办法做到这一点?

4

4 回答 4

1

您需要用空格分隔搜索词并搜索每个词(我认为不区分大小写)

var terms = terms.split(' '),
    match = terms.every(function (term) {
        return str.toLowerCase.indexOf(term) > -1;
    });
于 2013-04-20T14:48:25.167 回答
1

我只想使用一个简单的正则表达式

if("London, Oxford street".match(new RegExp("oxford london".split(/\W+/).join("|"), 'i'))) {
    alert("found");   
}
于 2013-04-20T14:52:58.333 回答
1
mystring = "Oxford Street 100 London"
search = "oxford london"
// split search string, by space, or by another delimiter if you like
terms = search.split(" ")
matches = false
// loop through all terms, assuming that matches is true if no negative comparisons are made
for(i=0; i< terms.length; i++){
  // make sure you lowercase both search string, and comparison string
  if(mystring.toLowerCase().indexOf(terms[i].toLowerCase())){
    matches = true
  }
}
// matches is true if any terms are found, and false if no term is found
于 2013-04-20T14:55:18.293 回答
0

这有效:

var str = "Oxford Street 100 London";
var terms = "oxford london";
terms = terms.replace(" ", "|");          // "oxford|london"
var find = new RegExp(terms, "g");        // /oxford|london/g
alert(str.toLowerCase().match(find));     // ["oxford", "london"]

看到这个小提琴

于 2013-04-20T15:14:16.937 回答