/ 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
identifier, string or number ?
Fra : Martin Ploug


Dato : 05-06-07 17:42

Hej

Jeg har en formular, hvor jeg med javascript vil validere for, om der bliver
indtastet tegn som {, } , [ , ] osv. ..... er det ikke muligt ?

Jeg har et script, hvor jeg har skrevet:

if (guestform.besked.value == { || } ) {
alert ("Feltet kan ikke indeholde { eller }.")
guestform.besked.focus()
return false
}

Men jeg får fejlen....

Expected identifier, string or number

....og det er i linjen med if (guestform.besked.value == { || } ) {

Er det ikke muligt at validere for tegn på den måde, eller mangler
jeg bare at tilføje noget?

På forhånd tak.

Med venlig hilsen
Martin

 
 
Birger (05-06-2007)
Kommentar
Fra : Birger


Dato : 05-06-07 18:32


"Martin Ploug" <mploug@pc.dk> skrev i en meddelelse
news:466591b2$0$13941$edfadb0f@dread15.news.tele.dk...
> Hej
>
> Jeg har en formular, hvor jeg med javascript vil validere for, om der
> bliver
> indtastet tegn som {, } , [ , ] osv. ..... er det ikke muligt ?
>
> Jeg har et script, hvor jeg har skrevet:
>
> if (guestform.besked.value == { || } ) {
> alert ("Feltet kan ikke indeholde { eller }.")
> guestform.besked.focus()
> return false
> }
> Men jeg får fejlen....
>
> Expected identifier, string or number
>
> ...og det er i linjen med if (guestform.besked.value == { || } ) {
>
> Er det ikke muligt at validere for tegn på den måde, eller mangler
> jeg bare at tilføje noget?
>
> På forhånd tak.
>
> Med venlig hilsen
> Martin

Strenge - tekster - skal stå i enten enkelte eller dobbelte anførselstegn i
javascript, ligesom du har gjort i alert(".."); :
if (guestform.besked.value == "{ || }" ) {

Birger



Martin Ploug (05-06-2007)
Kommentar
Fra : Martin Ploug


Dato : 05-06-07 20:11

Birger skrev:
> "Martin Ploug" <mploug@pc.dk> skrev i en meddelelse
> news:466591b2$0$13941$edfadb0f@dread15.news.tele.dk...
>
>> Hej
>>
>> Jeg har en formular, hvor jeg med javascript vil validere for, om der
>> bliver
>> indtastet tegn som {, } , [ , ] osv. ..... er det ikke muligt ?
>>
>> Jeg har et script, hvor jeg har skrevet:
>>
>> if (guestform.besked.value == { || } ) {
>> alert ("Feltet kan ikke indeholde { eller }.")
>> guestform.besked.focus()
>> return false
>> }
>> Men jeg får fejlen....
>>
>> Expected identifier, string or number
>>
>> ...og det er i linjen med if (guestform.besked.value == { || } ) {
>>
>> Er det ikke muligt at validere for tegn på den måde, eller mangler
>> jeg bare at tilføje noget?
>>
>> På forhånd tak.
>>
>> Med venlig hilsen
>> Martin
>>
>
> Strenge - tekster - skal stå i enten enkelte eller dobbelte anførselstegn i
> javascript, ligesom du har gjort i alert(".."); :
> if (guestform.besked.value == "{ || }" ) {
>
> Birger
>
>
>
Hej Birger

Tak for indlæget.

Fejlbeskeden er væk, men der bliver ikke valideret for { eller }
...måske kan det ikke lade sig gøre på den måde.

Hilsen Martin

Martin (05-06-2007)
Kommentar
Fra : Martin


Dato : 05-06-07 21:16

Martin Ploug wrote:
> Hej Birger
>
> Tak for indlæget.
>
> Fejlbeskeden er væk, men der bliver ikke valideret for { eller }
> ..måske kan det ikke lade sig gøre på den måde.

Nej - du skal nok have fat i regexp, som nok er den nemmeste løsning.

<http://www.regular-expressions.info/javascript.html>

str = guestform.besked.value;
if(str.match('/^[\{\}]/')) alert('fejl');
else alert('ok');

Jens Peter Karlsen [~ (07-06-2007)
Kommentar
Fra : Jens Peter Karlsen [~


Dato : 07-06-07 14:57

Det er fordi der er to fejl. Som det står i eksemplet valideres der
for hele strengen "{ || }" . Det du er ude efter er om et af de to
tegn {} findes i strengen. Til det bruger du indexof methoden så lav
det om til:
if (guestform.besked.value.indexof ('{' || '}'))

Regards Jens Peter Karlsen. Microsoft MVP - Frontpage.

On Tue, 05 Jun 2007 21:11:14 +0200, Martin Ploug <mploug@pc.dk> wrote:

>> if (guestform.besked.value == "{ || }" ) {
>>
>
>Fejlbeskeden er væk, men der bliver ikke valideret for { eller }
>..måske kan det ikke lade sig gøre på den måde.
>
>Hilsen Martin

Martin Ploug (07-06-2007)
Kommentar
Fra : Martin Ploug


Dato : 07-06-07 17:57

Jens Peter Karlsen [FP-MVP] skrev:
> Det er fordi der er to fejl. Som det står i eksemplet valideres der
> for hele strengen "{ || }" . Det du er ude efter er om et af de to
> tegn {} findes i strengen. Til det bruger du indexof methoden så lav
> det om til:
> if (guestform.besked.value.indexof ('{' || '}'))
>
> Regards Jens Peter Karlsen. Microsoft MVP - Frontpage.
>
> O
Hej Jens Peter

Tak for dit indlæg. Jeg tror jeg med dit indlæg er ved at være på rette
vej.

Jeg har nu:

str="guestform.besked;"

if(str.indexOf('{' ||'}')) {
alert("Du har indtastet et eller flere forkerte tegn")
guestform.besked.focus()
return false
}

Jeg har nu lidt af det modsatte problem.
Nu bliver alt blokeret - også selvom det ikke indeholder { eller }

Hvad er der galt ?
Scriptet skal jo netop kun reagere, hvis feltet indeholder { }.

Tak.

Mvh. Martin

Lasse Reichstein Nie~ (07-06-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 07-06-07 21:49

"Jens Peter Karlsen [FP-MVP]" <jpkarlsen@mvps.org> writes:

> Det er fordi der er to fejl. Som det står i eksemplet valideres der
> for hele strengen "{ || }" . Det du er ude efter er om et af de to
> tegn {} findes i strengen. Til det bruger du indexof methoden så lav
> det om til:
> if (guestform.besked.value.indexof ('{' || '}'))

Det virker slet ikke.

Det finder index af "{" i strengen, og bruger det som betingelse
til "if"-sætningen. Hvis "{" ikke optræder i strengen, så er
index -1, som også tæller som sand. "}" bliver slet ikke testet.

Det du ønsker er nok snarere:

var value = document.forms['guestform'].elements['besked'].value;
if (value.indexOf("{") >= 0 || value.indexOf("}") >= 0) {
// ...
}

Som det tidligere er blevet foreslået kan man med fordel bruge
et regulært udtryk til at teste begge tuborg'er i et skridt:

var value = document.forms['guestform'].elements['besked'].value;
if (value.match(/[{}]/)) {
// ...
}

Held og lykke.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Martin Ploug (13-06-2007)
Kommentar
Fra : Martin Ploug


Dato : 13-06-07 18:31

Lasse Reichstein Nielsen skrev bl.a:
>
> Det du ønsker er nok snarere:
>
> var value = document.forms['guestform'].elements['besked'].value;
> if (value.indexOf("{") >= 0 || value.indexOf("}") >= 0) {
> // ...
> }
>
> Som det tidligere er blevet foreslået kan man med fordel bruge
> et regulært udtryk til at teste begge tuborg'er i et skridt:
>
> var value = document.forms['guestform'].elements['besked'].value;
> if (value.match(/[{}]/)) {
> // ...
> }
>
> Held og lykke.
> /L
>
Hej Lasse!

Super, mange tak for hjælpen!
Med dit seneste indlæg ser det ud som om jeg har fået det til at virke.

Jeg har nu:

function submitIt(guestform) {

/* tjekker om der er tastet { eller } i feltet. */

var value = document.forms['guestform'].elements['besked'].value;
if (value.indexOf("{") >= 0 || value.indexOf("}") >= 0) {
alert("Feltet må ikke indeholde { eller }")
guestform.besked.focus()
return false
}

..........og det fede er jo også, at den giver alert uanset, hvor i
feltet tegnet er sat
- hvilket jo præcis også er meningen.

Alle tiders!

I andre skal også have mange tak for jeres indlæg.

Med venlig hilsen
Martin


Lasse Reichstein Nie~ (07-06-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 07-06-07 22:01

Martin <news@natten-i.dk> writes:

> str = guestform.besked.value;
> if(str.match('/^[\{\}]/')) alert('fejl');

Bare for-the-record, så virker ovenstående ikke som skrevet.
Udskift argumentet til match med fx /[{}]/, så skulle det være i
orden. Altså:
if(str.match(/[{}]/)) alert('fejl');

Argumentet til match skal enten være et regulært udtryk, eller en
streng som laves om til et regulært udtryk. Regulære udtryk-literaler
skrives med "/" omkring, men de skal ikke med i strengen (den
omsluttes af "'" i stedet). Tegnet "^" ville gøre at man kun matcher
på tegn i starten af "str", så "ab{" ville ikke matche.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Martin (08-06-2007)
Kommentar
Fra : Martin


Dato : 08-06-07 15:31

Lasse Reichstein Nielsen wrote:
> Martin <news@natten-i.dk> writes:
>
>> str = guestform.besked.value;
>> if(str.match('/^[\{\}]/')) alert('fejl');
>
> Bare for-the-record, så virker ovenstående ikke som skrevet.
> Udskift argumentet til match med fx /[{}]/, så skulle det være i
> orden. Altså:
> if(str.match(/[{}]/)) alert('fejl');

Nu er regulære udtryk heller ikke min stærke side - men det var da
næsten korrekt - er bare vant til at man skal huske at udkommentere
special tegn i fx. PHP.

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste