あなたの例に基づいて、あるsearch_type
べき唯一LIKE
の兆候は、値にパーセント記号が含まれているかどうかです%
。その場合は、次のindexOf('%')
いずれかがあるかどうかを確認するために使用できます。
var search_type = (someValue.indexOf('%') > -1) ? 'LIKE' : 'EQUALS';
現在のコードを使用する:
function test() {
var search_type = (document.getElementById("search").value.indexOf('%') > -1) ? 'LIKE' : 'EQUALS';
// any other processing required...
return search_type;
}
%
さらに、文字列の先頭、末尾、または先頭と末尾の両方である必要があり、それぞれに異なる修飾子を使用することを明示したい場合は、増分フラグを使用できます。
var search_flag = 0;
var value = document.getElementById('search').value;
if (value.substring(0, 1) == '%') search_flag += 1;
if (value.substring(value.length - 1) == '%') search_flag += 2;
var search_type = (search_flag == 0) ? 'EQUALS' : 'LIKE';
if (search_flag == 1) {
// % is at beginning of string
// do stuff...
} else if (search_flag == 2) {
// % is at end of string
// do stuff...
} else if (search_flag == 3) {
// % is at beginning and end of string
// do stuff...
}
単純なEQUALS/LIKE
チェックが必要な場合、これは完全に不要ですが、特定のワイルドカードの場所が必要な場合は拡張可能です。