[asp] regexp, vbcrlf tellen

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
hoi,

ik ben bezig om "enters" te tellen vanuit een textarea d.m.v. de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
' check hier op chr(10), chr(13) en vbnewline.
boodschap = request.form("boodschap")
boodschapenter = Replace("boodschap", CHR(10)&CHR(13)&vbnewline, vbcrlf)

strPattern = vbcrlf
Set objRE = New RegExp
objRE.IgnoreCase = False
objRE.Global = True
objRE.Pattern = strPattern
Set vervang = objRE.Execute(boodschapenter)
For i = 0 to 15 - Int(vervang.Count)
  x = x + 1
Next

Set vervang = nothing
Set objRE = nothing

if x > 15 then
response.write "Entercheck: fout<br>"
else
response.write "Entercheck: goed<br>"
end if

Ik krijg alleen het vage vermoeden dat ie niet telt. Hij blijft maar terug komen met "Entercheck: goed" Ook al voer ik 30 enters in.
Ik krijg dus ook geen foutmelding.

Ziet iemand mijn foutje? Ik weet dat een RegExp niet zo'n zuinige methode is, dus mocht iemand een andere weten om de vbcrlf te tellen... graag ;)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • mhbwessels
  • Registratie: Mei 2002
  • Laatst online: 31-07-2025

mhbwessels

ICT Projectmanager

Denk je niet dat je beter een html code kunt zoeken? Dus in plaats van strPattern = vbcrlf strPattern = "<br>".

Tenminste als ik zo snel je code kon begrijpen..... :?

ICT Projectmanager, tevens Joomla designer.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
kan evt. ook. Heb ik ook geprobeerd, maar lukt ook niet.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • mhbwessels
  • Registratie: Mei 2002
  • Laatst online: 31-07-2025

mhbwessels

ICT Projectmanager

Dat had ik ook wel al verwacht, maar je weet maar nooit. Kun je niet eens bij google zoeken naar Examples van RegExp?

Ik weet uit ervaring dat daar enorm veel tussen staat is echt een aanrader.

*D

ICT Projectmanager, tevens Joomla designer.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
I know, maar volgens mij loop ik spaak op het "Count" gedeelte. Ik denk dattie _niet_ count.

En dat is dus precies de bedoeling...

Maar ik zal nog eens rondsnuffelen met google.

Tenzij jij iets anders weet om uit te vogelen hoeveel enters erin staan. (Regexp is toch een beetje "te" voor dit denk ik)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • mhbwessels
  • Registratie: Mei 2002
  • Laatst online: 31-07-2025

mhbwessels

ICT Projectmanager

Weet je wat ik ga ook eens zoeken in een aantal boeken die ik heb. Misschien dat ik wat vind!

Laat effe horen als je wat vind wil je? Ik ben nu ook wel benieuwd wat de beste manier is.

ICT Projectmanager, tevens Joomla designer.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
will do ;)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ik denk dat je een for each lus moet gebruiken

dus iets van:
code:
1
2
3
4
5
6
7
8
9
10
11
12
strPattern = vbcrlf
Set objRE = New RegExp
objRE.IgnoreCase = False
objRE.Global = True
objRE.Pattern = strPattern

Set vervang = objRE.Execute(boodschapenter)

For each objREmatch in objRE
  x = x + 1
  Int(vervang.Count)
Next

ofzo iets...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
ik heb nu een "misschien" ranzige oplossing:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
strPattern = vbCrlf
Set objRE = New RegExp
objRE.IgnoreCase = False
objRE.Global = True
objRE.Pattern = strPattern
aantalenters = FormatNumber(objRE.Execute(boodschapenter).Count, 0)
response.write "Het aantal enters is: "&aantalenters&"<br>"

if aantalenters >"16" then
response.write "Entercheck: fout<br>"
else
response.write "Entercheck: goed<br>"
end if

Set vervang = nothing
Set objRE = nothing

en die werkt perfecto.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
code:
1
2
3
4
Set RE = new RegExp
...
Set Matches = RE.Execute( String )
x = Matches.Count

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:33
Op dinsdag 21 mei 2002 15:17 schreef Gert het volgende:
code:
1
2
3
4
Set RE = new RegExp
...
Set Matches = RE.Execute( String )
x = Matches.Count
Kan idd ook (misschien ook iets netter ;)) thanks

Heart..pumps blood.Has nothing to do with emotion! Bored


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

How about this one.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
' check hier op chr(10), chr(13) en vbnewline.
boodschap = request.form("boodschap")
strPattern = vbcrlf
lngPos = 1
x = 0
while instr(lngPos, strPattern, boodschap) <> 0
  x = x + 1
  lngpos = instr(lngPos, strPattern, boodschap)
wend

if x > 15 then
response.write "Entercheck: fout<br>"
else
response.write "Entercheck: goed<br>"
end if

Verwijderd

Ook wel ranzig:
code:
1
2
x=Split(boodschap,vbCr & vbLf)
If UBound(x)>15 Then MsgBox "foutje"
Pagina: 1