2017-06-21 8 views
0

Ich habe jQuery-Skript, das ich verwende, um HTML-Tabellen zu durchsuchen und Zeilen ausblenden, die nicht übereinstimmende eingegebene Zeichenfolge.Einfache Suche in jQuery funktioniert nicht richtig

Aber es irgendein Problem hat:
ich einige Elemente mit String ‚Kable i przewody‘ und meiner Suche richtig funktioniert, wenn ich Strings mit einem Buchstaben oder beginnend mit jedem Wort in String dh .: ‚Ka‘ verwenden, 'prze' usw.

Aber es funktioniert nicht mit einigen Zeichenketten, die mittlere Buchstaben von den Wörtern verwenden: 'fähig', 'rze', 'ody'.

hier Dies ist mein Code, bitte helfen:

var query = getUrlParameter('q'); 


var $rows = $('.tabelapatrnerzy tr'); 
$('#szukaj').click(function() { 

    var val = '^(?=.*\\b' + $.trim($('#wpisywane').val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$', 
     reg = RegExp(val, 'i'), 
     text; 

    $rows.show().filter(function() { 
     text = $(this).text().replace(/\s+/g, ' ', /ą/i, '', /ź/i, 'z', /ż/i, 'z',/ó/i ,'o', /ł/i, 'l', /ń/i, 'n', /ć/i, 'c', /ę/i, 'e', /ś/i, 's'); 
     return !reg.test(text); 
    }).hide(); 
}); 
if (query) { 
    var val = '^(?=.*\\b' + $.trim(query).split(/\s+/).join('\\b)(?=.*\\b') + ').*$', 
     reg = RegExp(val, 'i'), 
     text; 

    $rows.show().filter(function() { 
     text = $(this).text().replace(/\s+/g, ' ', /ą/i, '', /ź/i, 'z', /ż/i, 'z',/ó/i ,'o', /ł/i, 'l', /ń/i, 'n', /ć/i, 'c', /ę/i, 'e', /ś/i, 's'); 
     return !reg.test(text); 
    }).hide(); 
} 
+0

Wenn Sie In-Wort-Übereinstimmungen benötigen, entfernen Sie Wortgrenzen, '\\ b's. –

+0

Das war es, danke. Ich muss mehr über Regex in js lernen, wie es scheint. Bitte machen Sie Answear, damit ich es als richtig markieren kann. – Aksebkit

Antwort

0

Das \b Muster entspricht eine Stelle an einer Wortgrenze.

Um In-Word-Übereinstimmungen zuzulassen, entfernen Sie einfach alle \\b in Ihren Mustern.

+0

Würdest du auch wissen wie man eine Suche mit Leerzeichen im Eingabe-String macht? – Aksebkit

+0

Teilen Sie die Zeichenfolge dann nicht mit '/ \ s + /' regex. –

Verwandte Themen