Just nu i M3-nätverket
Gå till innehåll
KIVA_62

Regular Expression i .NET Web Pages

Rekommendera Poster

KIVA_62

Någon här som är duktig på Reguljära utryck? Jag använder mig av .NET web pages färdiga funktion för validering och skulle behöva kontrollera med "Regex" om en adress från ett formulär är en Boxadress, D.v.s. de tre första bokstäverna bildar ordet "Box" ( ej Case Sensitive ) och det fjärde tecknet (när man rensat ev. mellanslag) är en siffra.

 

Jag är rätt ny på detta, så jag skulle även vara tacksam för en bra svensk tutorial för Regujära utryck?

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
.M

Detta verkar fungera.

Regex.IsMatch("Box 2", @"^box.\d{1,5}", RegexOptions.IgnoreCase)

Jag är inte helt hundra på hur web pages färdiga uttryck för validering fungerar. Så du får kanske klippa och klistra lite. Du ser åtminstone hur mönsteret  ser ut.

Känner inte till någon svensk tutorial för regex. Jag brukar använda detta cheat sheet då det följer .NETs regex motor.
http://regexlib.com/CheatSheet.aspx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
KIVA_62

Tack för det, testade med nedan, och resultatet blev att allt tolkades som Box adress förutom just om man skriver "Box [siffra]" *Haha*

Så på något sätt så måste jag få en omvänd koll, som ...  if(adress != boxadress). Sen vet jag inte hur man löser Case Sensitive i detta fall.

 

Validation.Add("foretagAdress",

       Validator.Regex(@"^box.\d{1,5}", "- Du kan inte ange en Boxadress"),

       Validator.StringLength(80, 4, "- Ej giltig  adress")

);

 

Jag har hittat en färdig RegEx för validering av epost som ser ut så här

 

Validation.Add("epost",

Validator.Regex(@"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$",

"- Ej giltig e-postadress"),

Validator.Required("- E-post adress saknas")

);

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
.M

Dessa returnerar true för mig. Vilket jag väljer att tolka som att den hittat texten med hjälp av uttrycket. Men det uttrycket gör är att kolla om texten börjar med box, oavsett små eller stora bokstäver som följs av 1 eller flera tecken och sen siffra på slutet. Genom att sätta ett $-tecken efter \d så säger du till uttrycket att strängen måste ta slut där. Det kanske kan göra regeln lite striktare.

Regex.IsMatch("Box 2553", @"^[boxBOX].+\d")
Regex.IsMatch("box 23", @"^[boxBOX].+\d")
Regex.IsMatch("boX 5", @"^[boxBOX].+\d")
Regex.IsMatch("BOX: 1", @"^[boxBOX].+\d")

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
KIVA_62

Ja det funkar, upptäckte dock att även "BIL 123" returnerar True. Verkar som det räcker med att sätta första bokstaven till "B"

 

Regex.IsMatch("BIL 123", @"^[boxBOX].+\d")

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
.M

Nu har jag inkluderat mina testfall!

Vad tror du?

 

post-40189-0-61831100-1431077127_thumb.png

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
KIVA_62

Haha .. jag är hemska tacksam för ditt tålamod och det börjar likna något nu. Du kan säkert ta patent på detta, måste ju finnas ett stort behov då alla webbshoppar som riktar sig till företag inte kan leverera varor till en boxadress.

 

En liten hake bara ... testade med Boxgatan 2, (som ju är en okey leveransadress)  och den blir "True".

Vet inte hur många gator det finns som börjar på Box i Sverige, antar det är liten chans ... försöker även själv lägga in att efter bokstäverna i BOX kollar om det är ett mellanslag eller en siffra, är osäker ändå om det blir vattentätt, då man kan ge sig tusan på att någon kund skriver "Box gatan 2" vilket då borde generera "True"

 

Tack för hjälpen i alla fall!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
.M

Mönstret fungerar ju så att först tittar man på om strängen börjar med 3 bokstäver av kombinationen av bokstäverna b, o och x både versalt och gement. Sen vadsomhelst och sen siffra.

 

On du provar detta så kollar man specifikt efter whitespace efter bokstäverna och innan siffran.@"^(B|b|O|o|X|x){3}\s\d"

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
KIVA_62

Kanon !!! Funkar perfekt!

Tack för hjälpen!

 

Damerna på kundtjänst blir glada nu :-)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...