Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z replace
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Gribo
witam mam taki prosty fragment kodu
  1. var wordcount = 3
  2.  
  3. var word = new Array(wordcount)
  4. var color = new Array(wordcount)
  5.  
  6. word[0] = "aktualnosci"
  7. color[0] = "#FF0000"
  8.  
  9. word[1] = "kontakt"
  10. color[1] = "green"
  11.  
  12. word[2] = "dodać"
  13. color[2] = "blue"
  14.  
  15. var body = document.body.innerHTML
  16. var i = 0
  17.  
  18. for (i = 0; i < (word.length); i++) {
  19.  
  20. var body = body.replace('/'+word[0]+'/gi', '<span style=\'color:#FFF;background-color:' +color[i]+ ';\'>'+word[i]+'</span>')
  21.  
  22. }
  23.  
  24. document.body.innerHTML = body


Problem pojawia się gdy na stronie na której to stosują pojawiają się słowa z polskimi znakami.
ta linijka odpowiedzialna za podkreslenie słowa nie działa
  1. var body = body.replace('/'+word[0]+'/gi', '<span style=\'color:#FFF;background-color:' +color[i]+ ';\'>'+word[i]+'</span>')


co dziwnego jesli wpiszę tak :
  1. var body = body.replace(/akutalności/gi, '<span style=\'color:#FFF;background-color:' +color[i]+ ';\'>'+word[i]+'</span>')

wszystko działa
Crozin
A zgadnij jaka jest różnica pomiędzy: "/abc/", a /abc/. winksmiley.jpg
Gribo
no tak to prosze popraw mnie bo jak próbuję bez " to nie czyta zmiennych i wyskakują błędy
Crozin
Ehh... Google: JavaScript Regexp object
Gribo
próbowałem także z obiektem Regexp ale efekt był ten sam. Nawet wstawiłem sobie alert dla sprawdzenia co trafia do replace w tablicy word ale wszystko jest ok dla wyrazów bez polskich liter ale z polskimi za chiny nie chce działać
Crozin
No to pochwal się Twoimi próbami.
Gribo
proszę cię bardzo:

  1. var word = new Array(wordcount)
  2. var color = new Array(wordcount)
  3. word[0] = "dodać"
  4. color[0] = "#FF0000"
  5.  
  6. word[1] = " problem"
  7. color[1] = "green"
  8.  
  9. word[2] = "koło"
  10. color[2] = "blue"
  11.  
  12. var body = document.body.innerHTML
  13. var i = 0
  14.  
  15. for (i = 0; i < (word.length); i++) {
  16.  
  17. var w = new RegExp( word[i], "gi" )
  18. var body = body.replace(w, "<font color='" + color[i] +"'>"+ word[i] + "</font>")
  19.  
  20. }
  21.  
  22.  
Crozin
Twój kod wydaje się być w porządku:
[JAVASCRIPT] pobierz, plaintext
  1. var str = "Ala ma kota a kot ma alę";
  2. var words = [ "ala", "ma", "kota" ];
  3. var colors = [ "red", "#faa", "blue" ];
  4.  
  5. for (var i in words) {
  6. str = str.replace(new RegExp(words[i], "gi"), "<font color='" + colors[i] + "'>" + words[i] + "</font>");
  7. }
[JAVASCRIPT] pobierz, plaintext
Co zwraca konsola błędów?

PS. <font /> - wtf?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.