Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenia regularne - replace
MadMark
post 23.06.2011, 11:20:26
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


Witam,


mamy pytanie: jak w metodzie .replace() zamienić zmienną typu array na te same słowa tylko w pogrubieniu html (<b></b>) ?
Próbowałem tak:

  1. for(i=0;i<v1.length;++i){
  2. $("#results").text().replace(v1[i],"<b>"+v1[i]+"</b>");
  3. }


ale zamienia mi tylko jedno słowo w $("#results").text() z każdego indeksu, jak to zamienić aby działało na wszystkich słowachz każdego indeksu ?

Ten post edytował MadMark 23.06.2011, 11:20:42
Go to the top of the page
+Quote Post
wookieb
post 23.06.2011, 11:22:46
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zanim zaczniesz posługiwać się terminami "index" dowiedz się co to jest w kontekście tablicy.
Pokaż co masz w tablicy, co masz w #results i co chcesz osiągnąć.


--------------------
Go to the top of the page
+Quote Post
MadMark
post 23.06.2011, 11:30:00
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


  1. var v = $("#search").val();
  2. var v1 = v.split(" ");
  3. for(i=0;i<v1.length;++i){
  4. $("#results").text().replace(v1[i],"<b>"+v1[i]+"</b>");
  5. }


w $("#search") znajdują się "słowa których szukam", a w $("#results") jest "długi tekst który zawiera różne słowa, szukam rozwiązania problemu, ale nie wiem których rozwiązań się trzymać, dlatego szukam rozwiązania u kogoś kto zna się lepiej ode mnie na szukaniu słów" ... Coś takiego ^^
Go to the top of the page
+Quote Post
wookieb
post 23.06.2011, 11:38:08
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dobra nie wiem o co chodzi ale zrób to
[JAVASCRIPT] pobierz, plaintext
  1. var results = $('#results');
  2. var html = results.html().replace(v1[i],"<b>"+v1[i]+"</b>");
  3. results.html(html);
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
MadMark
post 23.06.2011, 11:41:23
Post #5





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


Ehh ^^

v1[] jest tablicą np 3 słów.
i chce w moim tekście każde z tych słów pogrubić. Niby działa, ale .replace(v1[i],"<b>"+v1[i]+"</b>") zamienia mi tylko JEDNO słowo w TEKŚCIE nawet jak jest ich więcej... a ja chce zamienić wszystkie biggrin.gif

potrzeba mi coś na kształt: /zmienna[i]/gi ... ale /v1[i]/gi nie działa...

Ten post edytował MadMark 23.06.2011, 11:42:17
Go to the top of the page
+Quote Post
wookieb
post 23.06.2011, 11:48:57
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jeżeli twoje słowa nie zawierają znaków specjalnych to spoko
[JAVASCRIPT] pobierz, plaintext
  1. // zamiast v1[i]
  2. new RegExp(v[i], 'g')
[JAVASCRIPT] pobierz, plaintext

Jeżeli zawierają znaki specjalne to http://simonwillison.net/2006/Jan/20/escape/ i musisz wykonać metodę "escape" na elemencie tablicy


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:39