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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
RegExp - hvad gør jeg forkert
Fra : Rune Jensen


Dato : 26-11-07 15:01

Efter tip herfra gruppen, vil jeg nu forsøge mig med Regular Expression. Jeg
har en variabel, varName, som, hvis den indeholder andet end tal, mellemrum
og bogstaver, skal erstatte disse ugyldige tegn med "" (dvs. ingenting). Jeg
har følgende kode, men den virker ikke helt:

dim rgx

Set rgx = New RegExp
rgx.pattern = "\b[^A-Z^a-z^0-9^_^\s]+\b"
rgx.ignorecase = true
varName= rgx.replace (varName, "")
set rgx = nothing

....for det lader til, den ikke søger på hele strengen varName, men kun tager
det første "ord". Er der en lettere metode/pattern, og nogle, som så kan
give en lille forklaring?

Følgende tilfældige streng...

abcABC123!"# !"#abc#¤ abc ABC

....skal jo f.eks. så se sådan ud:

abcABC123 abc abc ABC

....når det har været igennem en replace.

Skal lige siges, jeg er rimelig grøn, men har kigget på siden med regular
expressions, som Jens anbefalede for de referencer, jeg har brugt. Sikkert
bare ikke brugt rigtigt


MVH
Rune Jensen



 
 
Jens Gyldenkærne Cla~ (26-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-11-07 20:46

Rune Jensen skrev:

> Set rgx = New RegExp
> rgx.pattern = "\b[^A-Z^a-z^0-9^_^\s]+\b"
> rgx.ignorecase = true
> varName= rgx.replace (varName, "")
> set rgx = nothing
>
> ...for det lader til, den ikke søger på hele strengen varName,
> men kun tager det første "ord".

Egenskaben Global er det du leder efter:

   rgx.Global = True

Se beskrivelse på http://www.regular-expressions.info/vbscript.html


--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Rune Jensen (28-11-2007)
Kommentar
Fra : Rune Jensen


Dato : 28-11-07 01:59

"Jens Gyldenkærne Clausen" skrev...
> Rune Jensen skrev:
>
>> Set rgx = New RegExp
>> rgx.pattern = "\b[^A-Z^a-z^0-9^_^\s]+\b"
>> rgx.ignorecase = true
>> varName= rgx.replace (varName, "")
>> set rgx = nothing
>>
>> ...for det lader til, den ikke søger på hele strengen varName,
>> men kun tager det første "ord".
>
> Egenskaben Global er det du leder efter:


Ja, du har ret (selvfølgelig). Takker, så ser jeg på det

BTW mon det er muligt at sætte en testside op, som tester et givent pattern
i et text-area, så man kan prøve sig frem - jeg tænker på, hvad skal jeg
tage højde for, også sikkerhedsmæssigt: findes der error-catching på
reg-exp? Jeg har været ude for, en ikkevalid pattern crashede min side.

Forslaget er meget simpelt en form med et felt til input af patternstreng og
et text.area med selvvalgt text, som strengen virker på. Vil det være
forsvarligt?


MVH
Rune Jensen



Rune Jensen (28-11-2007)
Kommentar
Fra : Rune Jensen


Dato : 28-11-07 03:47

"Rune Jensen" skrev...
> "Jens Gyldenkærne Clausen" skrev...

>> Egenskaben Global er det du leder efter:
>
>
> Ja, du har ret (selvfølgelig). Takker, så ser jeg på det

Første del af problemet er dermed løst, idét...

Set rgx = New RegExp
rgx.Global = true
rgx.pattern = "[^\w\s\æ\ø\å\Æ\Ø\Å]"
rgx.ignorecase = true
varName= rgx.replace (varName, "")
set rgx = nothing


....så vidt jeg kan se, stripper alt, som ikke er bogstav+danske karakterer
eller space væk. Strengen skal også indeholde navn, så det er fint-fint. Her
kommer ingen hackere vidst ind

Anden del af spørgsmålet (det nye spørgsmål) - jeg har søgt og søgt, men har
endnu ikke fundet noget om error-handling af regexp, som var noget værd
Så jeg laver nok bare en test-side for mig selv.)


MVH
Rune Jensen



Jens Gyldenkærne Cla~ (28-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-11-07 13:28

Rune Jensen skrev:

> rgx.pattern = "[^\w\s\æ\ø\å\Æ\Ø\Å]"

æøåÆØÅ behøver vist ikke nogen escapetegn:


rgx.pattern = "[^\w\sæøåÆØÅ]"

- burde give det samme.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (28-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-11-07 13:26

Rune Jensen skrev:

> BTW mon det er muligt at sætte en testside op, som tester et
> givent pattern i et text-area, så man kan prøve sig frem

Noget a la det her: <http://gyros.dk/usenet/asp/regex.asp>


Se også <http://www.regular-expressions.info/vbscriptexample.html>
(der skal køres i IE for at fungere),


> tænker på, hvad skal jeg tage højde for, også
> sikkerhedsmæssigt: findes der error-catching på reg-exp? Jeg
> har været ude for, en ikkevalid pattern crashede min side.

Får du regex'et (helt eller delvist) ind via en form? I så fald kan
der nok være brug for noget validering. Det kan formentlig laves
med et andet regex hvor du opstiller reglerne for hvordan dit
pattern må se ud.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Rune Jensen (06-12-2007)
Kommentar
Fra : Rune Jensen


Dato : 06-12-07 11:18

Jens Gyldenkærne Clausen" skrev...
> Rune Jensen skrev:
>
>> BTW mon det er muligt at sætte en testside op, som tester et
>> givent pattern i et text-area, så man kan prøve sig frem
>
> Noget a la det her: <http://gyros.dk/usenet/asp/regex.asp>

Ja. Det kunne godt ligne.

> Se også <http://www.regular-expressions.info/vbscriptexample.html>
> (der skal køres i IE for at fungere),
>
>
>> tænker på, hvad skal jeg tage højde for, også
>> sikkerhedsmæssigt: findes der error-catching på reg-exp? Jeg
>> har været ude for, en ikkevalid pattern crashede min side.
>
> Får du regex'et (helt eller delvist) ind via en form? I så fald kan
> der nok være brug for noget validering. Det kan formentlig laves
> med et andet regex hvor du opstiller reglerne for hvordan dit
> pattern må se ud.

Ja, det er tanken at få det via en form, og behandle det hele serverside -
altså ingen JavaScript. Men det er svært at sikre validt input 100% med
RegExp, hvis man skal tage højde for alt? Jeg tænkte på som supplement sådan
en on error... som man kunne fange, hvis serveren går i baglås?


MVH
Rune Jensen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste