Avatar billede zeusdk Nybegynder
20. februar 2003 - 12:37 Der er 11 kommentarer og
2 løsninger

Udbygning af et reg.exp-script

Hej

Jeg har et script, som indsætter et punktum (i et textarea), hvis brugeren ikke selv har indskrevet det. Nu skal scriptet udbygges, så det bliver mere "intelligent".

1) Slet først eventuelle mellemrum efter det sidste tegn (så punktumet efter kommer til at stå således: "Ole gik i skole .").
2) Efter den eventuelle sletning, indsæt da punktummet - med mindre der i forvejen findes et af disse tegn: !, ?, : og ;

_____________________

if (form.beskrivelse.value.length => 200 ) {
  if (!form.beskrivelse.value.match( /\.$/ )) {
      form.beskrivelse.value += ".";
  }
}
Avatar billede olebole Juniormester
20. februar 2003 - 13:10 #1
<ole>

Er du sikker på, du ønsker, hvad du skriver? Vil du have mellemrum mellem en linies sidste tegn og et punktum ... eller?  :)

/mvh
</bole>
Avatar billede zeusdk Nybegynder
20. februar 2003 - 13:29 #2
>Vil du have mellemrum mellem en linies sidste tegn og et punktum
Nej, mellemrumet skal fjernes og så skal der indsættes et punktum - således:

"Hr. Hansen gik en tur " -> "Hr. Hansen gik en tur."

Det skal indsættes et punktum, hvis ikke det allerede er der, eller et af følgende tegn: !, ?, : og ; og de, som findes efter det sidste tegn, skal slettes.
Avatar billede zeusdk Nybegynder
20. februar 2003 - 13:30 #3
Det skal indsættes = Der skal indsættes
Avatar billede olebole Juniormester
20. februar 2003 - 13:53 #4
Undskyld, men du fortsætter med at skrive 'pløre'  :o)

I spørgsmålets punkt 1, viser du, du ønsker et mellemrum inden punktummet. Det ønsker du altså ikke.

Nu vil du have evt. tegn efter det sidste tegn slettet ...!?!???

Prøv helt forfra .... og meget gerne med eksempler  ;o)
/mvh
Avatar billede zeusdk Nybegynder
20. februar 2003 - 14:01 #5
1) Slet overskudende mellemrum: "Hans gik en tur  " -> "Hans gik en tur"
2) Indsæt punktum som det sidste tegn i textareaet: "Hans gik en tur" -> "Hans gik en tur."

Undtagelse:
Der skal ikke indsættes noget punktum, hvis det sidste tegn allerede er et ., et !, et ?, et : eller et ;
Avatar billede olebole Juniormester
20. februar 2003 - 14:49 #6
Er det sådan noget, du mener:

str = str.replace( /[\s]+$/g, "." );
str = str.replace( /\s([:;!\?])$/g, "$1" );

/mvh
Avatar billede zeusdk Nybegynder
20. februar 2003 - 15:10 #7
Det virker fint, du mangler bare lige en lille ting, som lige skal rettes:

"Han gik en tur. " -> "Han gik en tur.."
"Han gik en tur: " -> "Han gik en tur:."
"Han gik en tur; " -> "Han gik en tur;."
"Han gik en tur? " -> "Han gik en tur?."
"Han gik en tur! " -> "Han gik en tur!."
Avatar billede olebole Juniormester
20. februar 2003 - 15:24 #8
Det var netop for at undgå dette, jeg bad dig forklare dig tydeligt.
Prøv at få en anden til at lave det ... jegg orker ikke, der dukker flere 'ting' op efter næste løsning
Avatar billede zeusdk Nybegynder
20. februar 2003 - 17:13 #9
Ok, men tryk bare svar :-)
Avatar billede olebole Juniormester
20. februar 2003 - 17:15 #10
Nej, tag dem bare tilbage ... du fik ikke et svar, du kunne bruge  ;o)
/mvh
Avatar billede zeusdk Nybegynder
20. februar 2003 - 17:16 #11
Jo, jeg fik et halvt svar :)
Avatar billede olebole Juniormester
20. februar 2003 - 17:18 #12
hehe ... ok-da  :)
Avatar billede zeusdk Nybegynder
20. februar 2003 - 17:22 #13
:-)
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