ugrás a tartalomhoz

Javascript - egyszerű számláló módosítása

luseruser · 2007. Nov. 3. (Szo), 21.56
Sziasztok!
Egy aprósággal kapcsolatban szeretnék feltenni egy kérdést. Fordítóiroda oldalához kaptam egy javascriptet, amely kiszámolja az ügyfél költségeit Azonban annyi hibával, hogy a szóközöket is hozzáveszi a karakterekhez, azt pedig nem kellene. Ezt szeretném módosítani úgy, hogy a szóközöket ne értelmezze a javascript és csak a betűk alapján adjon egy összeget.

íme a script:
maxKeys = 50000000;
var IE = (document.all) ? 1 : 0;
var DOM = 0;
if (parseInt(navigator.appVersion) >=5) {DOM=1};

function txtshow( txt2show ) {
// Detect Browser
if (DOM) {
   var viewer = document.getElementById("txtmsg");
   viewer.innerHTML=txt2show;
   }
else if(IE) {
   document.all["txtmsg"].innerHTML=txt2show;
   }
document.chcount.counted.value = txt2show;
}

function keyup()
{
 var str = new String(document.chcount.carea.value);
 var len = str.length;
 var showstr = "";
 var nums = enters = 0;
 
 for (var i=0;i<len;i++) {
  if ((str.charAt(i)>="0") && (str.charAt(i)<="9")) nums++;
if (str.charAt(i)=="\n") enters++;
  }
 
 len-=enters;
 if (nums>(len*0.3)) len-=nums;
 showstr = len + " karakter";
 
 var price;
 if (document.chcount.mod[0].checked) price = 2;
 else price = 2.5;

 if (document.chcount.surgos.checked) price += 0.3;
 
 if (document.chcount.onlinejogasz.checked) price *= 2;
 
 price *= len;

 showstr += ", "+(price.toFixed(0))+" Ft + ÁFA";
 
 if (len > maxKeys) showstr += '<br>Some information will be lost, please revise your entry';
 txtshow( showstr );
}


Valaki esetleg tudja, hogy mit kellen beleírnom, hogy rávegyem, ne számolja a szóközöket?
 
1

Pedig kell a szóköz...

N0r3i · 2007. Nov. 4. (V), 11.11
Én dolgoztam több fordítóirodának, ahol világosan (példabeszéddel is illusztrálva, ha érdekel elmesélem) értésemre adták, hogy a szóköz márpedig karakter, és az is beleszámít a fordítandó karakterek számába.
Mindenesetre ha neked mégsem kell, akkor a számokat és sorvégeket számoló ciklust bővítsd a szóközök számolásával is, a végén vond ki az értéket, valahogy így:

var nums = enters = spaces = 0; 

for (var i=0;i<len;i++) {
  if ((str.charAt(i)>="0") && (str.charAt(i)<="9")) nums++;
  if (str.charAt(i)=="\n") enters++;
  if (str.charAt(i)==" ") spaces++;
}

len -= (enters + spaces);
2

SIKER

luseruser · 2007. Nov. 8. (Cs), 20.15
SIKER! :) Nagyon köszi!

Ez a fordító iroda amúgy azzal próbál pluszt nyújtani, hoyg nem számolják a szóközt.