Avatar billede axkris Nybegynder
03. marts 2004 - 14:41 Der er 18 kommentarer og
3 løsninger

Tal - nu også med punktummer

Hej

Kan man ikke på en smart måde udskrive tal med punktum således at 1000000 bliver til 1.000.000 ?
Avatar billede thesurfer Nybegynder
03. marts 2004 - 14:43 #1
Med CSS? Mener du ike JavaScript?
Avatar billede axkris Nybegynder
03. marts 2004 - 14:44 #2
css
Avatar billede axkris Nybegynder
03. marts 2004 - 14:45 #3
altså inde i font-tagget
Avatar billede doggy82 Praktikant
03. marts 2004 - 15:23 #4
nope. Og font har SLET ikke noget at gøre med css
Avatar billede axkris Nybegynder
03. marts 2004 - 15:55 #5
ahhh, jeg bruge f.eks. denne til at lave begyndelsbogstavet stort:

<font style="text-transform: capitalize;"....

Så må der vel også findes en, som indsætter nogle punktummer.... det vil jeg synes, var nærliggende.
Avatar billede doggy82 Praktikant
03. marts 2004 - 15:59 #6
Jo det kan da godt være at det er nærliggende. Men det er som sagt ikke mulighed for det med css.
Avatar billede doggy82 Praktikant
03. marts 2004 - 16:00 #7
lol det blev kludret - "Men det er der som sagt ikke mulighed for med css."
Avatar billede roenving Novice
03. marts 2004 - 17:27 #8
Det kan klares med noget sjov javascript, men ellers ikke !-)
Avatar billede axkris Nybegynder
03. marts 2004 - 17:28 #9
Ok, jeg overgiver mig til js så ;)

Smider i scriptet?
Avatar billede roenving Novice
03. marts 2004 - 17:45 #10
<script language="javascript" type="text/javascript">
function formatTusind(fld){
  val = fld.value;
  if(val.match(/\./g))val = val.replace(/(\.)/g,"");
  if(!val.match(/^\d+$/)||4>val.length)return;
  val = val.split("").reverse().join("");
  val = val.replace(/(\d{3})/g,"$1.");
  val = val.split("").reverse().join("");
  if(val.charAt(0)==".")val = val.substring(1);
  fld.value = val;
}
</script>
Avatar billede axkris Nybegynder
03. marts 2004 - 17:56 #11
Takker, kan du lige hjælpe mig lidt, jeg kan ikke få det til at virke.

document.getElementById("div_Free_All").innerHTML = formatTusind(strFreeAll);

function formatTusind(fld){

    val = fld;
   
    if (val.match(/\./g))val = val.replace(/(\.)/g,"") {
         
          if (!val.match(/^\d+$/)||4>val.length) {
              return;
          }
             
          val = val.split("").reverse().join("");
          val = val.replace(/(\d{3})/g,"$1.");
          val = val.split("").reverse().join("");
         
          if (val.charAt(0)==".")val = val.substring(1) {
              return val;
          }
    }
}
Avatar billede roenving Novice
03. marts 2004 - 18:01 #12
Du har brugt for mange kræfter på at indsætte overflødige {}, så du er kommet til at indsætte et par, som absolut ikke må være der !-)

-- men da du så åbenbart godt vil have din kode formatteret sådan, bliver det til:

function formatTusind(fld){

  val = fld;
   
  if (val.match(/\./g))val = val.replace(/(\.)/g,"") {
         
      if (!val.match(/^\d+$/)||4>val.length) {
        return;
      }
             
      val = val.split("").reverse().join("");
      val = val.replace(/(\d{3})/g,"$1.");
      val = val.split("").reverse().join("");
         
      if (val.charAt(0)==".") {
        val = val.substring(1);
      }

      return val;
    }
}
Avatar billede roenving Novice
03. marts 2004 - 18:05 #13
-- øv, og så overså jeg endnu flere:

function formatTusind(val){
   
  if (val.match(/\./g)) {
    val = val.replace(/(\.)/g,"")
  }
         
  if (!val.match(/^\d+$/)||4>val.length) {
    return;
  }
             
  val = val.split("").reverse().join("");
  val = val.replace(/(\d{3})/g,"$1.");
  val = val.split("").reverse().join("");
         
  if (val.charAt(0)==".") {
    val = val.substring(1);
  }

  return val;

}
Avatar billede axkris Nybegynder
03. marts 2004 - 19:45 #14
Det virker fint, hvis jeg skriver:

formatTusind("1000000000")

Men hvis jeg skriver:

formatTusind(strFreeAll)

Siger den "objekt expected" selvom strengen StrFreeAll kun indeholder tal, sikkert fordi strengen ikke er formateret korrekt.

Jeg har prøvet at sige:

formatTusind(int(strFreeAll))

Men det virker heller ikke.
Avatar billede roenving Novice
03. marts 2004 - 23:43 #15
Overfører du måske et tal ?-)

-- for så skal du starte med:

function formatTusind(val){

  val = "" + val;
   
  if (val.match(/\./g)) {
Avatar billede olebole Juniormester
05. marts 2004 - 12:00 #16
<ole>

Du kan også lave det uden RegExp:

function formNumb(num) {
    for ( var t=num.split(""),num="",i=0,j=t.length-1; i<t.length; i++,j-- ) {
        num += (j%3 || j==0)? t[i] : t[i]+".";
    }
    return num;
}

bla = "1234567890789";
alert( formNumb(bla) );

... og sådan kan du også skrive funktionen:

function formNumb(num) {
    for ( var t=num,num="",i=0,j=t.length-1; i<t.length; i++,j-- ) {
        num += (j%3 || j==0)? t.charAt(i) : t.charAt(i)+".";
    }
    return num;
}

... der er mange muligheder  :)
/mvh
</bole>
Avatar billede axkris Nybegynder
05. marts 2004 - 12:02 #17
Takker - tryk svar alle :)
Avatar billede olebole Juniormester
05. marts 2004 - 12:09 #18
:o)
Avatar billede roenving Novice
05. marts 2004 - 14:08 #19
Velbekomme '-)
Avatar billede olebole Juniormester
05. marts 2004 - 15:29 #20
Tak ... og vi kan da godt lige nappe en enkelt mere:

function formNumb(num) {
    for ( var t="",i=num.length; num.length>0; i-=3 ) {
        t = num.substr( i ) + ((t!="")? "." : "") + t;
        num = num.substr( 0, i );
    }
    return t;
}

/mvh
Avatar billede roenving Novice
06. marts 2004 - 07:32 #21
-- tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester