webForumDet fria alternativet
Logga in / Bli medlem

Hur?

ASP

5 svar · 270 visningar · startad av niclas.j

Medlem sedan juni 2000120 inlägg
Frågan#1

Hur kan jag göra det här?
kod:
<%
vVecka = DatePart("ww", Date(),2, 2)
If not rstemp1("namn1")= "[^A-Za-z0-9]" AND rstemp1("ID") < vVecka-2 Then
response.write "<font face='arial' size='1' color='#333333'>"
response.write "går inte att registrera!</font>"
Else
If not rstemp1("namn1")= "[^A-Za-z0-9]" AND rstemp1("ID") > vVecka Then
response.write "<font face='arial' size='1' color='#333333'>"
response.write "går inte att registrera!</font>"
Else
If rstemp1("namn1")= "[^A-Za-z0-9]" Then

%></font><font face="Arial" size="1" color="#999999"> </font><font face="Arial" size="2" color="#666666"><img src="checkbox_sel.gif"><font color="#333333">
kontrollerad av:</font><font face="Arial" size="1" color="#999999">
</font><font color="#333333"> </font><font face="Arial" size="2" color="#666666"><% =rstemp1("namn1") %></font>
<font color="#333333">den</font> <% =rstemp1("datum1") %></font><font face="Arial" size="2" color="#666666"></font><font face="Arial" size="2" color="#666666"><% Else %></font><font face="Arial" size="1" color="#333333" class="line">sign:</font><font face="Arial" size="1" color="#999999"></font><font face="Arial" size="1" color="#999999">
<input type="text" size="10" name="namn1" value="<% =rstemp1("namn1") %>">
<input type="text" size="10" name="datum1" value="<% =Date %>">
</font><font face="Arial, Helvetica, sans-serif" size="2" color="#666666"><%
response.write "<font face='arial' size='1' color='#333333'>"
response.write "<input type='image' src='Image/ok.gif' name='submit'>"
%></font><font face="Arial" size="1" color="#999999"> </font><font face="Arial" size="2" color="#666666">
<%
End If
End If
End If
End If
%>
=====================================
Jag vill alltså kontrollera rstemp om det innehåller bokstäver, om inte ska en tom textruta synas......har provat med RegExp men jag får inte till det...kan någon hjälpa mig på traven?

tack

/niclas

Medlem sedan dec. 19996 721 inlägg
#2

RegExp är ett objekt, och du måste tilldela det matchningsmönstret, innan du kan använda det.

Det du försöker åstadkomma med:

If not rstemp1("namn1")= "[^A-Za-z0-9]" then blablabla

bör i stället bli

set re=new regexp
re.global=true
re.pattern="[^A-Za-z0-9]"
set matches=re.execute(cstr(rstemp1("namn")))

if matches.count=0 then blablabla
'dvs. om söksträngen inte matchade

Du kan återanvända objektet om du vill göra fler kollar. Det är bara att stoppa en en ny pattern, eller en ny sträng i execute.

mvh

Medlem sedan juni 2000120 inlägg
#3

hej emission.
skrev så här:
<%
set re=new regexp
re.global=true
re.pattern="[^A-Za-z0-9]"
set matches=re.execute(cstr(rstemp1("namn1")))

vVecka = DatePart("ww", Date(),2, 2)
If matches.count=0 AND rstemp1("ID") < vVecka-2 Then
response.write "<font face='arial' size='1' color='#333333'>"
response.write "går inte att registrera!</font>"
Else
If matches.count=0 AND rstemp1("ID") > vVecka Then
response.write "<font face='arial' size='1' color='#333333'>"
response.write "går inte att registrera!</font>"
Else
If matches.count=0 Then
------------------------------
här efter kommer en tom text ruta om det inte matchade.....det fungerade inte riktigt som jag tänkt mig men utan error på den aktuella "veckan = 44" men går jag framåt eller bakåt div 43/45 får jag detta fel medelande:
Invalid use of Null: 'cstr'
har jag gjort fel när jag använder strängen flera gånger i koden??

/niclas

Medlem sedan dec. 19996 721 inlägg
#4

Invalid use of Null: 'cstr' får du om du försöker köra cstr på ett nullvärde, dvs. om rstemp1("namn1") inte innehåller något så får du detta fel.

De två if-satserna

If matches.count=0 AND rstemp1("ID") < vVecka-2 Then

och

If matches.count=0 AND rstemp1("ID") > vVecka Then

går att slå ihop till:

If matches.count=0 AND (rstemp1("ID") > vVecka OR rstemp1("ID") < vVecka-2) Then

Kom ihåg att matches.count endast är 0 om rstemp1("namn1") inte innehåller något tecken som inte är en bokstav eller en siffra. Var det det du ville?

Medlem sedan juni 2000120 inlägg
#5

ok men om rstemp1("namn1")= Null hur gör jag då för att inte få ett runtime error? .....kan man skriva typ:
If matches.count=0 Then
response.write ""
eller?

/niclas

Medlem sedan dec. 19996 721 inlägg
#6

if isnull(rstemp1("namn1")) then
mString=""
else
mString=cstr(rstemp1("namn1"))
end if

set matches=re.execute(mString)

267 ms totalt · 4 externa anrop · v20260731065814-full.df76c93f
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)