Autor Zpráva
D15
Profil *
Ahoj,
hledám javascript, který by s textem dělal tohle:

1) převedl by první písmena slov na velká
2) odstranil mezery mezi slovy
3) případně odstranil české znaky

Něco, jako je na T-zones u odesílání SMS - funkce komprese textu. Nevěděli byste o něčem takovém? Nejem bohužel přes JS moc velký odborník. Díky moc.
fos4
Profil
pokud to maji na tzones tak to vem od tama ne ?


function compressMessage(){
var field = document.getElementById('text');


var tx="";
var text= field.value.toLowerCase();
for(var p=0;p<text.length;p++){
if (text.charAt(p) == " "){
p++;
tx+= text.charAt(p).toUpperCase();
}
else
if (p == 0)
tx+= text.charAt(p).toUpperCase();
else
tx+= text.charAt(p);
}
field.value=tx;
}
D15
Profil *
fos4 Nechci to ukrást.
peta
Profil
D15
na JS se neda nic ukrast. Muzes si to upravit.
Co poslal fos4 ani jinak napsat nejde. Muzes jenom prepsat
tx na str
p na i

ten script vlastne dela to, ze nulty znak da uppercase (velke pismeno) a pak kazdou mezeru vynecha
(text.charAt(p) == " ")
Jak chces rozeznavat slova? Muzes zalozit promennou j, do ktere pri nalezeni mezery das 1 a pak kazdy znak za mezerou das do uppercase. Ale, co kdyz ten znak bude mezera? Co kdyz tam nakdo da 2 mezery?
Pak by bylo dobre pouzit regularni vyraz /(w)(w?)/g
nejsem si ted jist, jestli ?, + nebo * je pro pocet 0-nekonecno

Maximalne bych udelal zmenu, ze nulty znak prevedl pred FOR cyklem a FOR cyklus zacinal jednickou. zrychli se to tak o 1/3

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0