Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-14 23:01:59 - Johan Andersson, i forum visual basic - allmänt, Tråden har 14 Kommentarer och lästs av 1148 personer

Tjenixen!
Tänkte för skojs skull göra 2 functioner. Den ena ska kolla om det finns ett otilåtet tecken i en text och den andra kolla att bara tillåtna tecken skickats till functionen.

Koden för den först functionen är redan fixad men kan förmodlingen fixas till.
Koden är som följer:

Function Kolla(Text As String) As String
Dim EjTillåtnaTecken As String
Dim I As Integer
EjTillåtnaTecken = "*'/\$%;"
For I = 1 To Len(EjTillåtnaTecken)
    If InStr(Text, Mid(EjTillåtnaTecken, I, 1)) <> "0" Then
        Kolla = Mid(EjTillåtnaTecken, I, 1)
        Exit For
    End If
Next I
End Function


Nu är det bara det att jag inte riktigt vet hur jag ska göra för den andra.
Någon som har några förslag?
Tips om hur man kan förbättra min kod ovan välkommnas :D
Tänkte eventuallt försöka få till det så att man kan använda det på en asp.net sida med om det nu går.


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-14 23:37:18 - Niklas Jansson

De främsta förbättringarna med koden är dels att ta in "ej tillåtna tecken" som ett argument med default-värde istället, och dels att byta till engelska namn.
Sen är raden:
If InStr(Text, Mid(EjTillåtnaTecken, I, 1)) <> "0" Then
hemsk. Skriv
If InStr(Text, Mid(EjTillåtnaTecken, I, 1)) <> 0 Then
istället. (Ev. med Mid$ ist. för Mid också.)

Ett enkelt sätt att lösa det andra är att ange "tillåtna tecken" och bara vända på villkoret.
If InStr(Text, Mid(TillåtnaTecken, I, 1)) = 0 Then


Svara

Sv:Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-15 10:02:51 - Sven Åke Persson

Nyfiken.
Någon därute som kan ge ett exempel på Regular Expression som löser samma problem.


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-15 12:52:21 - Thomas Vanhaniemi

Utan att ha testat, men något i stil med följande
<code>
Function TextToPattern(Text)
Dim RegExp As Object
Dim Res As String
Set RegExp = CreateObject("VBScript.RegExp")

RegExp.Global = True
RegExp.IgnoreCase = True

RegExp.Pattern = "([\.\+\?\*\[\]\{\^\$\|\(\)\\])"
Res = RegExp.Replace(Text, "\$1")

RegExp.Pattern = "\n"
Res = RegExp.Replace(Res, "\n")

RegExp.Pattern = "\t"
Res = RegExp.Replace(Res, "\t")

RegExp.Pattern = "\r"
Res = RegExp.Replace(Res, "\r")

RegExp.Pattern = "\s"
Res = RegExp.Replace(Res, "\s")

Set RegExp = Nothing
TextToPattern = Res
End Function

Public Function ValidateText(ByVal Text As String, ByVal AllowOnly As Boolean, ByVal Pattern As String) As Boolean
Dim RegExp As Object
Dim Ret As Boolean
Set RegExp = CreateObject("VBScript.RegExp")

RegExp.Global = True
RegExp.Pattern = "[" & IIf(AllowOnly, "^", "") & TextToPattern(Pattern) & "]"
Ret = RegExp.Test(Text)

Set RegExp = Nothing

ValidateText = Not Ret
End Function
</code>


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-15 12:53:20 - Thomas Vanhaniemi

Utan att ha testat, men något i stil med följande
<code>
Function TextToPattern(Text) As String
Dim RegExp As Object
Dim Res As String
Set RegExp = CreateObject("VBScript.RegExp")

RegExp.Global = True
RegExp.IgnoreCase = True

RegExp.Pattern = "([\.\+\?\*\[\]\{\^\$\|\(\)\\])"
Res = RegExp.Replace(Text, "\$1")

RegExp.Pattern = "\n"
Res = RegExp.Replace(Res, "\n")

RegExp.Pattern = "\t"
Res = RegExp.Replace(Res, "\t")

RegExp.Pattern = "\r"
Res = RegExp.Replace(Res, "\r")

RegExp.Pattern = "\s"
Res = RegExp.Replace(Res, "\s")

Set RegExp = Nothing
TextToPattern = Res
End Function

Public Function ValidateText(ByVal Text As String, ByVal AllowOnly As Boolean, ByVal Pattern As String) As Boolean
Dim RegExp As Object
Dim Ret As Boolean
Set RegExp = CreateObject("VBScript.RegExp")

RegExp.Global = True
RegExp.Pattern = "[" & IIf(AllowOnly, "^", "") & TextToPattern(Pattern) & "]"
Ret = RegExp.Test(Text)

Set RegExp = Nothing

ValidateText = Not Ret
End Function
</code>


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2007-12-19 18:19:16 - Johan Forsberg

Döp sedan gärna om EjTillåtnaTecken till strForbiddenChars eller nått. Och använd liten bokstav på i, inte I. Som någon redan sagt (tror jag?), du kan bifoga de förbjudna tecknen som argument till funktionen istället för att ha en fast teckensekvens i den. Byt också ut mot 0 istället för "0" (redan påpekat).

En fråga till: Ska funktionen bara returnera ett av tecknen som inte är tillåtet i strängen?


Svara

Sv:Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-24 16:40:41 - Johan Andersson

Kanske ska kolla om någon svarat.
Har haft lite att göra på sistonde.

Thomas: Hur fungerar den kod du skicka? Hur anropar man ValidateText?

Johan Forsberg: Tanken var att functionen skulle returnera True eller False beroende om texten man skrev in inehåller ett otilåtet tecken.


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 08:11:50 - Jan Bulér

[EDIT, raderat utkast till svar]

Glöm detta inlägg, tabbade och råkade trycka mellanslag så att "Spara ändringar" trycktes in.
Inlägget var inte klart att postas.


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 09:26:08 - Thomas Vanhaniemi

Du anropar funktionen genom
<code>
Dim res As Boolean = ValidateText("Text att validera", True, "0123456789abcdef")
</code>
Alltså, funktionen tar emot tre parametrar, där den första är texten du ska validera, den andra om du i tredje parametern angett att du vill enbart tillåta de givna tecknen eller tvärtom, alltså förbjuda. Tredje parametern innehåller då alltså alla tecken i en teckensträng som du vill tillåta/förhindra (beroende på värdet på parameter 2).
Alltså:
- Parameter 2 = True => Tillåt enbart tecken givna i parameter 3.
- Parameter 2 = False => Tillåt enbart tecken som inte finns givna i parameter 3.


Svara

Sv:Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 15:15:51 - Johan Andersson

Tackar tackar, fungerade utmärt nu när jag vet hur man ska anropa functionen :)
Hoppas det fungerar lika bra i asp.net :D


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 15:29:42 - Johan Andersson

Testade just men asp.net sa att "'Let' and 'Set' assignment statements are no longer supported" på raderna:
Set RegExp = CreateObject("VBScript.RegExp")
Set RegExp = Nothing

Kan man modifiera koden så att den funkar i asp.net med?
Vore görbra i så fall :D
Väldigt lätt använd kod.


Svara

Sv:Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 22:41:57 - Thomas Vanhaniemi

Man får skriva om funktionen lite för att stödja .NET, men det är inte så hemskt mycket mer jobb.
Blir ännu mindre kod eftersom en av funktionerna redan finns i .NET...

Kan skriva en .NET version när jag hinner...

Har du för övrigt testat om funktionen fungerar?


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-25 22:59:11 - Johan Andersson

Functionen fungerade i Vb6. Fast ej i asp.net


Svara

Sv:Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-26 21:56:37 - Thomas Vanhaniemi

Ok, här har du en identisk funktion för .NET
<code>
Public Function ValidateText(ByVal Text As String, ByVal AllowOnly As Boolean, ByVal Pattern As String) As Boolean
Return Not System.Text.RegularExpressions.Regex.IsMatch(Text, "[" + IIf(AllowOnly, "^", "") + System.Text.RegularExpressions.Regex.Escape(Pattern) + "]")
End Function
</code>


Svara

Sv: Ej tillåtna tecken och enbart tillåtnat tecken

Postades av 2008-01-27 02:42:24 - Johan Andersson

Tackar tackar, funka utmärkt :)
mycket enklare än den variant jag kom med.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
1 058
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies