javascriptでフィールドから値をとり、一致しないテーブルの行を隠すライブフィルタを作成しました。Javascriptの正規表現でアウトオブオーダーの文字列を一致させる方法
私はこのために使用する正規表現は非常に簡単です:/ inputValueで/ I
これは、それが唯一の順になっている文字と一致する素晴らしい作品が。たとえば:
inputValue = test
string to match = this is a test sentence
この例では一致しますが、私がしようとした場合:
inputValue = this sentence
string to match = this is a test sentence
を入力値が故障しているので、これは一致しません。
正規品を作成するにはどうすればよいですか?単語はスキップできますか?ここで
は、私が現在使用してループがある:お時間を
for (var i=0; i < liveFilterDataArray.length; i++) {
var comparisonString = liveFilterDataArray[i],
comparisonString = comparisonString.replace(/['";:,.\/?\\-]/g, '');
RE = eval("/" + liveFilterValue + "/i");
if (comparisonString.match(RE)) {
rowsToShow.push(currentRow);
}
if(currentRow < liveFilterGridRows.length - 1) {
currentRow++;
} else {
currentRow = 0;
}
}
感謝します。
クリス
はおそらく 'RE =のeval( "/" + liveFilterValue.split(検索したい場合は
+'|'+words.reverse().join(".*")
を削除this.*sentence|sentence.*this/i
を作成します。 ").join(" | ")+"/i "); ' – mplungjan
それは1つの警告でトリックを行い、単語i、eのいずれかを含む結果を見つけます。言葉は「これは」両方のときにだけ一致する必要がありますに発生するため、 inputValueでは=と一致するように、この文 第一列は=これが一致するように、テスト文 第二文字列です=これはテスト段落 あるそれは両方の文字列に一致します。それは両方の単語が含まれているので、最初の文字列。 ありがとうございます。 –