我正在尝试使用 javaScript 在字符串中搜索另一个字符串的任何单词。假设我有以下要搜索的字符串:
"Oxford Street 100 London"
我的搜索词是这样的:
"oxford london"
上面的搜索词应该给我一个匹配,因为oxford
并且london
是要搜索的字符串的一部分。
我已经尝试过str.indexOf("oxford london") !== -1
,但这不起作用,因为它不是要搜索的字符串中的组合词。
有没有办法做到这一点?
我正在尝试使用 javaScript 在字符串中搜索另一个字符串的任何单词。假设我有以下要搜索的字符串:
"Oxford Street 100 London"
我的搜索词是这样的:
"oxford london"
上面的搜索词应该给我一个匹配,因为oxford
并且london
是要搜索的字符串的一部分。
我已经尝试过str.indexOf("oxford london") !== -1
,但这不起作用,因为它不是要搜索的字符串中的组合词。
有没有办法做到这一点?
您需要用空格分隔搜索词并搜索每个词(我认为不区分大小写)
var terms = terms.split(' '),
match = terms.every(function (term) {
return str.toLowerCase.indexOf(term) > -1;
});
我只想使用一个简单的正则表达式:
if("London, Oxford street".match(new RegExp("oxford london".split(/\W+/).join("|"), 'i'))) {
alert("found");
}
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
这有效:
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"]
看到这个小提琴。