/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Undgå blanktegn og mellemrum osv. ?
Fra : Martin Ploug


Dato : 15-12-09 19:23

Hej

Jeg vil i JavaScript gerne lave et tjek
for, om et felt er tomt eller indeholder
blanktegn, mellemrum eller lign. i starten
(og i slutningen) af et felt.
Altså jeg vil gerne forhindre, at man
f.eks. bare kan indtaste nogle mellemrum
i et felt i stedet for at skrive noget.

Jeg ved, at man kan bruge nedenstående,
men synes ikke helt, at det er effektivt
nok. Findes der ikke en funktion lige som
trim funktionen i PHP?
http://php.net/manual/en/function.trim.php

Kan man bruge noget med indexof eller en
eller flere regular expresseion?
Findes der ikke en forholdsvis simpel og
effektiv medtode?

Eksempler (se borg fra evt. manglende /
ukorrekte syntakser - jeg har prøvet med
de rigtige):

if (form.felt.value ==" ")
if (form.felt.value ==" ")
if (form.felt.value ==null)
if (form.felt.length ==0)

Kan nogen evt. henvise til et færdigt
og velfungerende script, der gør tricket?

På forhånd tak.

Mvh. Martin



 
 
Frank Damgaard (15-12-2009)
Kommentar
Fra : Frank Damgaard


Dato : 15-12-09 20:26

Martin Ploug wrote:
> Hej
>
> Jeg vil i JavaScript gerne lave et tjek
> for, om et felt er tomt eller indeholder
> blanktegn, mellemrum eller lign. i starten
> (og i slutningen) af et felt.
> Altså jeg vil gerne forhindre, at man
> f.eks. bare kan indtaste nogle mellemrum
> i et felt i stedet for at skrive noget.
>
> Jeg ved, at man kan bruge nedenstående,
> men synes ikke helt, at det er effektivt
> nok. Findes der ikke en funktion lige som
> trim funktionen i PHP?
> http://php.net/manual/en/function.trim.php
>
> Kan man bruge noget med indexof eller en
> eller flere regular expresseion?
> Findes der ikke en forholdsvis simpel og
> effektiv medtode?

jo en regular expression test på blanktegn og lign.

http://www.regular-expressions.info/javascriptexample.html
http://www.javascriptkit.com/javatutors/redev2.shtml
http://www.javascriptkit.com/javatutors/redev3.shtml

f.eks.:
function check_spaces(t) {
var reS = new RegExp("(^\\s+$)|(^$)");
var v=t.txt1.value;
if ( v.match(reS) ) {
alert("ingen tomme felter tak!");
}
}


eksempel kaldes med:
Input: <input type="text" id="txt1" name="txt1">
<input type="button" name="chk" value="check" onclick=" check_spaces(this.form)">



replace funktionen kan bruges til at fjerne foranstillede og afsluttende blanktegn.
de tilhørende regular expressions er "^\\s+" og "\\s+$"

PS.
i ovenstående er brugt \\s i stedet for \s, da \ fortolkes i "" strenge i javascriptkode
og "\\" giver et enkelt "\".





Stig Johansen (15-12-2009)
Kommentar
Fra : Stig Johansen


Dato : 15-12-09 21:07

Martin Ploug wrote:

> Altså jeg vil gerne forhindre, at man
> f.eks. bare kan indtaste nogle mellemrum
> i et felt i stedet for at skrive noget.

I de systemer jeg har lavet, tester jeg bare på felt > '!'.

--
Med venlig hilsen
Stig Johansen

Martin Ploug (15-12-2009)
Kommentar
Fra : Martin Ploug


Dato : 15-12-09 21:16

Stig Johansen skrev:
> Martin Ploug wrote:
>
>> Altså jeg vil gerne forhindre, at man
>> f.eks. bare kan indtaste nogle mellemrum
>> i et felt i stedet for at skrive noget.
>
> I de systemer jeg har lavet, tester jeg bare på felt > '!'.
>

Hej Frank

Mange tak for dit eksempel og dine henvisninger.
Jeg kigger på det.


Stig
> I de systemer jeg har lavet, tester jeg bare på felt > '!'.

Hvad mener du, kan du give et eksempel?

Mvh. Martin

Stig Johansen (16-12-2009)
Kommentar
Fra : Stig Johansen


Dato : 16-12-09 02:00

Martin Ploug wrote:

> Stig
> > I de systemer jeg har lavet, tester jeg bare på felt > '!'.
>
> Hvad mener du, kan du give et eksempel?

var felt=document.getElementById('feltnavn') ;
if (felt.value > '!') {
feltet er ok, tjek evt. længde eller lign.
} else {
alert('feltet skal udfyldes'), eller lav baggunden rød, som jeg plejer at
bruge
}

--
Med venlig hilsen
Stig Johansen

Frank Damgaard (16-12-2009)
Kommentar
Fra : Frank Damgaard


Dato : 16-12-09 02:48

Stig Johansen wrote:
> Martin Ploug wrote:
>
>> Stig
>> > I de systemer jeg har lavet, tester jeg bare på felt > '!'.
>>
>> Hvad mener du, kan du give et eksempel?
>
> var felt=document.getElementById('feltnavn') ;
> if (felt.value > '!') {
> feltet er ok, tjek evt. længde eller lign.
> } else {
> alert('feltet skal udfyldes'), eller lav baggunden rød, som jeg plejer at
> bruge
> }

egentlig ganske smart , du sammenligner om første tegn i streng er større end
udsråbstegn (så måske felt.value > ' ' også kunne bruges ).


Dette har dog den lille ulempe:
Starter streng med blanktegn eller udråbstegn så får man fejl
også hvis det måske er tilladt input, f.eks: vil følgende også give fejl:

" denne tekst"
"! halløj !"

Det må så afhænge af sammenhængen om det er ok, eller at dette ikke accepteres.

Man bør af hensyn til brugeren komme med passende fejlmeldinger hvis input er forkert,
det er nemlig ikke altid indlysende for brugeren hvad der er forkert, specielt
et foranstillet blanktegn er ikke altid noget man opdager som bruger....

Så jeg vil normalt ikke anse foranstillede blanktegn som fejl, men foretrække
at fjerne dem hvis de er i vejen, de kan nemt fjernes med:

function rm_spaces(s) { // remove leading and trailing spaces
var reL = new RegExp("^\\s+");
var reT = new RegExp("\\s+$");
var v=s.replace(reL,"")
return v.replace(reT,"");
}



Stig Johansen (16-12-2009)
Kommentar
Fra : Stig Johansen


Dato : 16-12-09 11:10

Frank Damgaard wrote:

> Dette har dog den lille ulempe:
> Starter streng med blanktegn eller udråbstegn så får man fejl
> også hvis det måske er tilladt input, f.eks: vil følgende også give fejl:
>
> " denne tekst"
> "! halløj !"
>
> Det må så afhænge af sammenhængen om det er ok, eller at dette ikke
> accepteres.

Ja, men når jeg refererer til "systemer jeg har lavet", så er det ikke kun
webbaserede systemer.

I virkeligheden så bruger jeg:
"if trim(felt...)", men det er nogle helt andre sprog.

Jeg er også med på, at dit eksempel med "! halløj !", vgil give en positiv
response, men OP nævner ikke andet end 'blanke', så et andet alternativ jeg
bruger er:
if (feltværdi < '!') ....

I bund og grund handler det kun om at pre-validering af input, og jeg håber
virkelig, at input bliver valideret serverside.

--
Med venlig hilsen
Stig Johansen

Gunnar Vestergaard (20-12-2009)
Kommentar
Fra : Gunnar Vestergaard


Dato : 20-12-09 22:47

Stig Johansen skrev:
> I bund og grund handler det kun om at pre-validering af input, og jeg håber
> virkelig, at input bliver valideret serverside.
>

Ja der tog du ordene ud af munden på mig. Det var netop det spørgsmål,
jeg ville tilføje til denne tråd. Lad os spørge Martin, bliver input
også valideret serverside?

Mvh
Gunnar

Martin (16-12-2009)
Kommentar
Fra : Martin


Dato : 16-12-09 17:52

On 15-12-2009 19:23, Martin Ploug wrote:
> Hej
>
> Jeg vil i JavaScript gerne lave et tjek
> for, om et felt er tomt eller indeholder
> blanktegn, mellemrum eller lign. i starten
> (og i slutningen) af et felt.
> Altså jeg vil gerne forhindre, at man
> f.eks. bare kan indtaste nogle mellemrum
> i et felt i stedet for at skrive noget.
>
> Jeg ved, at man kan bruge nedenstående,
> men synes ikke helt, at det er effektivt
> nok. Findes der ikke en funktion lige som
> trim funktionen i PHP?
> http://php.net/manual/en/function.trim.php

Hvis der findes en PHP funktion som ikke lige eksisterer i javascript,
så er det et godt sted at kigge på
http://phpjs.org/functions/index
Så er det bare at søge, og vupti så finder man
http://phpjs.org/functions/trim:566



Så kan man jo klippe lidt rundt i funktionen, hvis man har lyst til det
- og lige netop denne funktion har ingen dependencies så det er
out-of-the-box.

Frank Damgaard (17-12-2009)
Kommentar
Fra : Frank Damgaard


Dato : 17-12-09 13:03

Martin wrote:
> On 15-12-2009 19:23, Martin Ploug wrote:
>> Hej
......
>> Jeg ved, at man kan bruge nedenstående,
>> men synes ikke helt, at det er effektivt
>> nok. Findes der ikke en funktion lige som
>> trim funktionen i PHP?
>> http://php.net/manual/en/function.trim.php
>
> Hvis der findes en PHP funktion som ikke lige eksisterer i javascript,
> så er det et godt sted at kigge på
> http://phpjs.org/functions/index
> Så er det bare at søge, og vupti så finder man
> http://phpjs.org/functions/trim:566


og ellers har javascript noget så "powerfull" som regular expressions
og der kan det laves på 1-2 linier, men her lidt ikke-optimeret:

function rm_spaces(s) { // remove leading and trailing spaces (trim)
var reL = new RegExp("^\\s+");
var reT = new RegExp("\\s+$");
var v=s.replace(reL,"")
return v.replace(reT,"");
}



Martin Ploug (17-12-2009)
Kommentar
Fra : Martin Ploug


Dato : 17-12-09 21:14

Hej alle

Mange tak for jeres kommentarer, løsningsforslag
og henvisninger. Jeg må have kigget grundigt på
det I har skrevet, og efterfølgende have rettet
min formluar.

Mvh. Martin






Frank Damgaard skrev:
> Martin wrote:
>> On 15-12-2009 19:23, Martin Ploug wrote:
>>> Hej
> ......
>>> Jeg ved, at man kan bruge nedenstående,
>>> men synes ikke helt, at det er effektivt
>>> nok. Findes der ikke en funktion lige som
>>> trim funktionen i PHP?
>>> http://php.net/manual/en/function.trim.php
>> Hvis der findes en PHP funktion som ikke lige eksisterer i javascript,
>> så er det et godt sted at kigge på
>> http://phpjs.org/functions/index
>> Så er det bare at søge, og vupti så finder man
>> http://phpjs.org/functions/trim:566
>
>
> og ellers har javascript noget så "powerfull" som regular expressions
> og der kan det laves på 1-2 linier, men her lidt ikke-optimeret:
>
> function rm_spaces(s) { // remove leading and trailing spaces (trim)
> var reL = new RegExp("^\\s+");
> var reT = new RegExp("\\s+$");
> var v=s.replace(reL,"")
> return v.replace(reT,"");
> }
>
>

Rune Jensen (22-12-2009)
Kommentar
Fra : Rune Jensen


Dato : 22-12-09 21:52

Martin Ploug skrev:
> Hej alle
>
> Mange tak for jeres kommentarer, løsningsforslag
> og henvisninger. Jeg må have kigget grundigt på
> det I har skrevet, og efterfølgende have rettet
> min formluar.

Her er en alternativ måde at se det på. Nogle (performance)tests af
forskellige trimming-former i JS:
http://blog.stevenlevithan.com/archives/faster-trim-javascript


MVH
Rune Jensen

Stig Johansen (23-12-2009)
Kommentar
Fra : Stig Johansen


Dato : 23-12-09 10:25

Rune Jensen wrote:

> Her er en alternativ måde at se det på. Nogle (performance)tests af
> forskellige trimming-former i JS:
> http://blog.stevenlevithan.com/archives/faster-trim-javascript

I forhold til den givne problemstilling handler det bare om at se om der er
'lovlige' tegn i inputfeltet.

For at tjekke det, behøves hverken trim eller diverse regex funktioner, blot
at se om der er 'lovlige' tegn.

En sådan funktion kan laves på nogle få linier JS, og kræver ikke
reallokering af memory (hvilket er 'dyrt').

Der er ingen grund til at inddrage samtlige 'whitespace' karakterer, blot at
der er noget > blank.

--
Med venlig hilsen
Stig Johansen

N/A (23-12-2009)
Kommentar
Fra : N/A


Dato : 23-12-09 15:51



Rune Jensen (23-12-2009)
Kommentar
Fra : Rune Jensen


Dato : 23-12-09 03:10

On 23 Dec., 10:25, Stig Johansen <wopr...@gmaill.com> wrote:
> Rune Jensen wrote:
> > Her er en alternativ måde at se det på. Nogle (performance)tests af
> > forskellige trimming-former i JS:
> >http://blog.stevenlevithan.com/archives/faster-trim-javascript
>
> I forhold til den givne problemstilling handler det bare om at se om der er
> 'lovlige' tegn i inputfeltet.
>
> For at tjekke det, behøves hverken trim eller diverse regex funktioner, blot
> at se om der er 'lovlige' tegn.


Nej, det er fordi der blev spurgt om en trimming-funktion. Javascript
har ingen trim, ejheller replace, så det er godt at have i sit script-
bibliotek. Faktisk burde de indføre en sådan funktion i selve JS, så
man ikke skal lede hver gang. Det er jo universelle funktioner.


MVH
Rune Jensen

Frank Damgaard (23-12-2009)
Kommentar
Fra : Frank Damgaard


Dato : 23-12-09 15:51

Rune Jensen wrote:
> On 23 Dec., 10:25, Stig Johansen <wopr...@gmaill.com> wrote:
>> Rune Jensen wrote:
>>> Her er en alternativ måde at se det på. Nogle (performance)tests af
>>> forskellige trimming-former i JS:
>>> http://blog.stevenlevithan.com/archives/faster-trim-javascript
>> I forhold til den givne problemstilling handler det bare om at se om der er
>> 'lovlige' tegn i inputfeltet.
>>
>> For at tjekke det, behøves hverken trim eller diverse regex funktioner, blot
>> at se om der er 'lovlige' tegn.
>
>
> Nej, det er fordi der blev spurgt om en trimming-funktion. Javascript
> har ingen trim, ejheller replace, så det er godt at have i sit script-
> bibliotek. Faktisk burde de indføre en sådan funktion i selve JS, så
> man ikke skal lede hver gang. Det er jo universelle funktioner.

Javascript har regular expression og i den sammenhæng en replace()
(og en match() ).

Regular expressions er ideel til at kontrollere vor gyldig input
(eller ugyldig input).

http://www.webreference.com/js/column5/methods.html
http://www.javascriptkit.com/jsref/regexp.shtml
http://www.w3schools.com/jsref/jsref_obj_regexp.asp



... men indrømmet regular expressions er måske kun noget for os gamle unix-hajer... ;)

N/A (23-12-2009)
Kommentar
Fra : N/A


Dato : 23-12-09 15:51



Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407840
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste