Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

indexOf

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

indexOf

Post 27.02.2018, 17:18:16

Mam taki kod:

Kod: Zaznacz cały
var name = 'StatTrak™ AK-47 | Elite Build';
var search = 'ak-47';
name = name.toLowerCase();
search = search.toLowerCase();
name.indexOf(search) > -1
//(w tym przypadku zwróci true)


Potrzebuje go przerobić tak, żeby po wpisaniu
Kod: Zaznacz cały
var search = 'ak47';

lub
Kod: Zaznacz cały
var search = 'ak47 elite';

zwróciło true
venekus
Posty: 58
Dołączył(a): 28.11.2016

Re: indexOf

Post 27.02.2018, 17:44:50

No dobra, ale mało precyzyjnie opisałeś przypadek. W przypadku search = "ak47 elite" ma zwrócić true, gdy name ma w sobie ciąg znaków dokładnie taki sam jak podany w search, czy name zawiera obydwa słowa z search czy zawiera przynajmniej jedno z tych słów? Czy kolejność słów się liczy, czy np. podanie "elite ak47" też ma zwrócić true? Czy ma zwrócić true, gdy tekst będzie zawierał "blablaak47elitebleble"? Musisz dokładniej opisać swoje wymagania, żebyśmy wiedzieli jak zabrać się za algorytm. Sprecyzuj, czy ma dopasowywac słowa? Jak definiujesz słowa? Co ze znakami specjalnymi, spacjami, itd?
Dziękuję wszystkim za lata współpracy, ciekawych pytań i dyskusji. Będę wspominał to forum z wielkim sentymentem • kukawski.pl
Avatar użytkownikakuku
Rafał Kukawski

410 Gone
410 Gone

Posty: 19813
Dołączył(a): 14.04.2002

Re: indexOf

Post 27.02.2018, 17:51:12

Nazwa z "search" ma być w "name", lub zawierać znaki podobne tzn: "AK-47" i "AK47", Ma zamieniać "-", "|" i "™" na "" i sprawdzać czy się zgadza, ale niema to być robione w each czy for(var), bo będzie sprawdzanych tak tysiące nazw i by zamulało.

Kod: Zaznacz cały
var name = 'StatTrak™ AK-47 | Elite Build';
var search = 'Pistol';

zwraca false, "pistol" niema nigdzie w "name"
Kod: Zaznacz cały
var name = 'StatTrak™ AK-47 | Elite Build';
var search = 'StatTrak Elite Build';

Zwraca true
Kod: Zaznacz cały
var name = 'StatTrak™ AK-47 | Elite Build';
var search = 'StatTrak Elite Vulcan';

Zwraca false
jak będzie zawierał "blablaak47eliteblabla" , to ma zwrócić false :)

Wszystkie wyrazy w search mają być w name żeby zwróciło true.
I znaki specjalne (np. -, |, ™ ) mają rozdzielać na kilka członow wyrazy np AK-47 na AK i 47
venekus
Posty: 58
Dołączył(a): 28.11.2016


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post
  • indexOf
    przez ZIBI8003 » 27.03.2012, 23:54:24
    8 Odpowiedzi
    657 Wyświetlone
    Ostatni post przez ZIBI8003 Zobacz najnowszy post
    09.04.2012, 15:11:21

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 52513 zarejestrowanych użytkowników.
Najnowszy użytkownik: tuckerjackk


Nasi użytkownicy napisali:

  • 939281 wiadomości
  • w 248741 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)