MozillaPL.org - polskie centrum Mozilli

Główne menu:

Zliczanie ilości znaków bez spacji w polu tekstowym

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Zliczanie ilości znaków bez spacji w polu tekstowym

Postautor: mk321 » 24 kwietnia 2011, 09:55

Przeglądarka: Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.7.62 Version/11.01

Mam skryptozakładkę jak w tym temacie "Licznik znaków":
Kod: Zaznacz cały
javascript:(function(){var D=document,i,f,j,e;for(i=0;f=D.forms[i];++i)for(j=0;e=f[j];++j)if(e.type=="text"||e.type=="password"||e.tagName.toLowerCase()=="textarea")S(e);function S(e){if(!e.N){var x=D.createElement("span"),s=x.style;s.color="green";s.background="white";s.font="bold 10pt sans-serif";s.verticalAlign="top";e.parentNode.insertBefore(x,e.nextSibling);function u(){x.innerHTML=e.value.length;}u();e.onchange=u;e.onkeyup=u;e.oninput=u;e.N=x;}else{e.parentNode.removeChild(e.N);e.N=0;}}})()
Działa bardzo dobrze. Tylko mi jest potrzebne, żeby zliczał znaki bez spacji (obecnie zlicza ze spacjami).

Sam próbowałem zamienić to:
Kod: Zaznacz cały
x.innerHTML=e.value.length;
Na to:
Kod: Zaznacz cały
x.innerHTML=e.value.replace(' ','').length;
Podobnie jak w tym temacie, ale nie podziałało.

A może jest już jakiś dodatek o podobnej funkcji (zliczanie znaków w formularzach)?
mk321
 
Posty: 3
Z nami od: 10 kwietnia 2010, 19:22

Odp: Zliczanie ilości znaków bez spacji w polu tekstowym

Postautor: Mirek » 25 kwietnia 2011, 14:24

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16

Nie sprawdzałem - ale za pewne problem tkwi w tym, że replace(' ','') zamienia tylko pierwszą spację. Natomiast, żeby pominęło (zamieniło) wszystkie, trzeba użyć wyrażenia regularnego z flagą global - czyli:
Kod: Zaznacz cały
x.innerHTML=e.value.replace(/ /g,'').length;
Mirek
Moderator
 
Posty: 2156
Z nami od: 09 sierpnia 2007, 20:37

Odp: Zliczanie ilości znaków bez spacji w polu tekstowym

Postautor: mk321 » 26 kwietnia 2011, 23:57

Przeglądarka: Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.7.62 Version/11.01

Rzeczywiście zamieniało tylko pierwszą spację.

Teraz działa. Wielkie dzięki :)

To całość:
Kod: Zaznacz cały
javascript:(function(){var D=document,i,f,j,e;for(i=0;f=D.forms[i];++i)for(j=0;e=f[j];++j)if(e.type=="text"||e.type=="password"||e.tagName.toLowerCase()=="textarea")S(e);function S(e){if(!e.N){var x=D.createElement("span"),s=x.style;s.color="green";s.background="white";s.font="bold 10pt sans-serif";s.verticalAlign="top";e.parentNode.insertBefore(x,e.nextSibling);function u(){x.innerHTML=e.value.replace(/ /g,'').length;}u();e.onchange=u;e.onkeyup=u;e.oninput=u;e.N=x;}else{e.parentNode.removeChild(e.N);e.N=0;}}})()


Jeszcze raz dzięki za pomoc i pozdrawiam :)
mk321
 
Posty: 3
Z nami od: 10 kwietnia 2010, 19:22


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Bing [Bot], dexter

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: