Avatar billede koldstar Nybegynder
04. april 2005 - 18:00 Der er 11 kommentarer og
1 løsning

Linieskift i string

Hej Eksperter!
Jeg har følgende funktion som hjælper mig med at validere en streng. Det er måske ikke den korrekte måde at gøre det på, men den virker... eller dvs, hvordan pokker får jeg tilføjet linieskift til checkOK variablen? obj, må nemlig gerne indeholde linieskift...

function msgOK(obj){
  var checkStr = obj.value;
  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.'"
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++){
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
      if (j == checkOK.length){
          allValid = false;
          break;
      }
  }

  if (i < checkStr.length){
    alert("Besked-feltet indeholder et ugyldigt tegn: " + ch + "");
  }

  return allValid
}
Avatar billede busschou Praktikant
04. april 2005 - 18:19 #1
måske som \n
Avatar billede koldstar Nybegynder
04. april 2005 - 18:21 #2
det virker desværre ikke med /n, da funktionen tager et tegn ad gangen og sammenligner med..., så den sammenligner bare med "/" og med "n"... findes der ikke et tegn lidt a' la' vbcrlf i vbscript??
Avatar billede nikolajdu Nybegynder
04. april 2005 - 18:25 #3
vend / om til \

og prøv evt \r som vel er det korrekte linieskift. \n er newline.
Avatar billede koldstar Nybegynder
04. april 2005 - 18:41 #4
jeg har prøvet med:

"ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.'\r"

og

"ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.'\n"

og

"ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.'" + "\r"

og

"ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.'" + "\n"

men ingen af dem virker :(
Avatar billede plx Nybegynder
04. april 2005 - 18:44 #5
prøv med

"ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅabcdefghijklmnopqrstuvwxyzæøå1234567890 ()/!?-:,.\r\n"


eller hvis du er frisk på et regulært udtryk:

var allValid = /^[a-zæøå()\n\r /!?:,.-]*$/i.test(checkStr):
Avatar billede koldstar Nybegynder
04. april 2005 - 18:54 #6
tak plx, det virker.

Det kan være jeg vil prøve med det regulære udtryk istedet...

men kan du evt forklare det sidste af den: "*$/i.test(checkStr)"

samt det første "/^"

det i midten virker logisk nok.

Smid et svar samtidig, så er der point :)
Avatar billede plx Nybegynder
04. april 2005 - 18:58 #7
// angiver start og slut på udtrykket
^ angiver der ikke må stå noget foran de tilladte tegn
$  -- efter de tilladte tegn
/i både store og små bogstaver

\d tallene 0-9 (som jeg glemte at få med)

test() er en medlemsfunktion af objektet (det regulære udtryk er et objekt). returnerer true, hvis checkStr opfylder mønsteret

udtrykket med tal:

var allValid = /^[a-zæøå\d()\n\r /!?:,.-]*$/i.test(checkStr):
Avatar billede plx Nybegynder
04. april 2005 - 18:59 #8
google 'regular expressions' hvis du vil vide mere
Avatar billede koldstar Nybegynder
04. april 2005 - 19:00 #9
okay. tak. Det prøver jeg.

husk svar :)
Avatar billede busschou Praktikant
20. april 2005 - 13:02 #10
lukketid ? ;o)
Avatar billede koldstar Nybegynder
20. april 2005 - 13:29 #11
okay. Når pæx ikke vil have point, så snupper jeg dem selv :)
Avatar billede thesurfer Nybegynder
23. april 2005 - 14:29 #12
koldstar> Svar ønskes: http://www.eksperten.dk/spm/530215
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