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

Szukanie w tekście

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

Szukanie w tekście

Post 02.11.2018, 14:53:30

Mam taki tekst:
Kod: Zaznacz cały
var text = 'User #10 - Token: 0.711284597694001 - Position: 68(Check)';

i chce żeby funckja
Kod: Zaznacz cały
getValue(text,'Token');

zwróciła tylko to: 0.711284597694001

a w np

Kod: Zaznacz cały
var text = 'User #414- hash: 941Wfakf9$#%kfas - Position: 568(Report)';

i chce żeby funckja
Kod: Zaznacz cały
getValue(text,'hash');

zwróciła tylko to: 941Wfakf9$#%kfas

potrzebuje funckji getValue() :)))
venekus
Posty: 57
Dołączył(a): 28.11.2016

Re: Szukanie w tekście

Post 02.11.2018, 23:49:03

Przyjmując, że wzorzec zawsze wygląda następująco

Kod: Zaznacz cały
nazwaparametru dwukropek spacja wartość

gdzie wartość to dowolne znaki aż do najbliższej spacji, to implementacja może wyglądać tak

Kod: Zaznacz cały
function getValue (text, param) {
   param = param.replace(/([()[\]{}\-.*+?^$|\/\\])/g,'\\$1');
   return (text.match(RegExp(param + ': ?([^ ]+)')) || [])[1];
}


jeśli dajesz 100% pewność, że nazwa szukanego parametru nie zawiera specjalnych znaków używanych w wyrażeniach regularnych, to możesz usunąć linię z param = param.replace(...)

Jeśli powyższe nie pasuje, to musisz doprecyzować format po którym można rozpoznawać parametry.
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: 19830
Dołączył(a): 14.04.2002

Re: Szukanie w tekście

Post 03.11.2018, 14:19:12

Jest git, tylko się zagapiłem i potrzebuje do takiego czegoś jeszcze:
Kod: Zaznacz cały
won $5.55 congratulations


i potrzebuje pobrać te 5.55 :))
venekus
Posty: 57
Dołączył(a): 28.11.2016

Re: Szukanie w tekście

Post 04.11.2018, 12:19:39

Brakuje mi tutaj jakiejś powtarzalności, wzorca, więc zostanie w ten sposób

Kod: Zaznacz cały
function getValue(text, param) {
  switch (param) {
    case 'won':
      return (text.match(/won \$(\d+(?:\.\d+)?) congratulations/) || [])[1];
    default:
      param = param.replace(/([()[\]{}\-.*+?^$|\/\\])/g, '\\$1');
      return (text.match(RegExp(param + ': ?([^ ]+)')) || [])[1];
  }
}
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: 19830
Dołączył(a): 14.04.2002

Re: Szukanie w tekście

Post 05.11.2018, 21:26:24

O to chodziło, dzięki, można zamknąc.
venekus
Posty: 57
Dołączył(a): 28.11.2016


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google Adsense [Bot] i 3 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 53239 zarejestrowanych użytkowników.
Najnowszy użytkownik: mariuszzz


Nasi użytkownicy napisali:

  • 939414 wiadomości
  • w 248810 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)