StackOverflow の別の場所で、このコードのバリエーションを見つけました。テキストエリアからすべての単語を取得し、それらを正規表現に変換します。次に、配列をテストして、正規表現のすべての単語が配列に含まれているかどうかを確認します。
<textarea id="inputtext" type="text"></textarea>
<input id="searchbutton" type="button" value="Click me" />
var links = new Array("taxi","Alpha","runway");
$("#searchbutton").click(function () {
var query = $("#inputtext").val();
var querywords = query.split(',');
for (var i = 0; i < querywords.length; i++) {
var regex = new RegExp('(?=.*\\b' + querywords[i].split(' ').join('\\b)(?=.*\\b') + '\\b)', 'i', 'g');
for (var j = 0; j < links.length; j++) {
if (regex.test(links[j])) {
console.log("Correct");
}
}
}
});
テキストエリアの単語に配列内のすべてのキーワードが含まれている場合、プログラムが「true」を返すようにプロセスを逆にするにはどうすればよいですか? たとえば、テキストエリアに「Taxi to the runway via Taxiway alpha」という文があり、「links」という名前の配列にキーワード「taxi」「alpha」および「runway」が含まれている場合、プログラムは「true」を返します。