webForumDet fria alternativet

Behöver hjälp med RegEx

.NET

15 svar · 697 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag skulle vilja ha hjälp med följande regex

(^([0-9]*|\d*\d{1}?\d*)$)

Denna tar alla siffror, men jag skulle vilja ha det att den enbart gödkänner
dessa siffror:
0 5 5,5 6 6,5 7 7,5 8 8,5 9 9,5 10
Jag skulle uppstatta mycket för hjälp med detta. :stud

Medlem sedan juni 20019 519 inlägg
#2
^(0 5 5|5 6 6|5 7 7|5 8 8|5 9 9|5 10)$
Medlem sedan mars 20011 880 inlägg
#3

Skriver jag så här

 ValidationExpression="^(0 5 5|5 6 6|5 7 7|5 8 8|5 9 9|5 10)$">

så säger han att det är fel dvs valideringen går inte igenom.

Medlem sedan juni 20019 519 inlägg
#4
<asp:RegularExpressionValidator ControlToValidate="test" ValidationExpression="^(0 5 5|5 6 6|5 7 7|5 8 8|5 9 9|5 10)$" Display="Static" EnableClientScript="true" ErrorMessage="!!" runat="server"/>
<asp:TextBox runat="server" id="test"></asp:TextBox>

gjorde en snabb test med följande kod och jag får inte ett "OK" på det.

Medlem sedan mars 20011 880 inlägg
#5

Finns det ingen som har en bra idé?

Medlem sedan juni 20019 519 inlägg
#6

Är det i en repeater eller vad? RegEx uttrycket är korrekt

Medlem sedan mars 20011 880 inlägg
#7

Hej.
Nej jag vill validera indata i en textbox.
Jag bygger en applikation för brukshundstävling och där är bedömningstalen
som jag har nämnt innan. Det är ett antal textboxar och en
<asp:RegularExpressionValidator till varje.

Så här ser taggen ut

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
runat="server"   ControlToValidate="tBet1" ErrorMessage="Enbart siffror är godkänt" 
  ValidationExpression="^(0 5 5|5 6 6|5 7 7|5 8 8|5 9 9|5 10)$" Display="Static" 
EnableClientScript="true" >*</asp:RegularExpressionValidator>

När jag kör den så visar den "Enbart siffror är godkänt"

Medlem sedan mars 20011 880 inlägg
#8

Jag har efter mycket testande kommit en liten bit på vägen:

ValidationExpression="(^([0 5 5|5 5 6 6|5 7 7|5 8 8|5 9 9|5 10])$)"

Nu tar den 0 5 6 7 8 9. Den tar alltså inte 5,5 6,5 7,5 8,5 9,5 10.
Några tips?

Medlem sedan juni 20019 519 inlägg
#9

saw: det är inkorrekt RegExp du skriver
1. Du använder inte grupper i en validatorexpression, så att köra med () är onödigt,
att använda [] är att det är inne i den, ett av teckna kan träffas:
[123] innebär att den träffar på 1, 2 eller.
att använda () tillsammans med | är att matchar mellan varje "pipe". I ditt fall:
hitta ett tecken (endast ett tecken) inne i listan "0 5|67891"

Om det är så att den måste ha en () för att gruppera:

(^(0 5 5|5 6 6|5 7 7|5 8 8|5 9 9|5 10)$)

Om något, men känns onödigt att gruppera ^ och $ (början och slutet av en rad).

Medlem sedan mars 20011 880 inlägg
#10

Nu ger jag upp med det här.
Jag har kopierat din kod, och jag får att det är fel med en gång.
Jag har sökt under flera dagar nu, för att hitta något bra exempel men icka.
Tack alla som har försökt att hjälpa mig.

Medlem sedan juni 20019 519 inlägg
#11

vad för fel får du? I uttrycket eller så fort du skriver något i fältet?

är det "0 5 5" eller 055 som är "OK"?

Medlem sedan dec. 19995 874 inlägg
#12

Det hade underlättat om du hade skrivit exempel på data som skall validera, respektive exempel på data som inte skall validera.

Jag tror dock att jag har hittat hur poängsystemet för bedömning av hundar fungerar och kan efter det erbjuda följande regex.

^(0|[5-9](,5)?|10)$

Det kan då exempelvis skrivas in på följande sätt (om jag tar din tidigare kod)

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
runat="server"   ControlToValidate="tBet1" ErrorMessage="Enbart siffror är godkänt" 
  ValidationExpression="^(0|[5-9](,5)?|10)$" Display="Static" 
EnableClientScript="true" >*</asp:RegularExpressionValidator>

Med ovanstående så godkänns exempelvis
0
5
5,5
6
6,5
10

Däremot fungerar det inte med
-1
1
55
5,2
11

Medlem sedan mars 20011 880 inlägg
#13

Denna tar alla siffror, men jag skulle vilja ha det att den enbart gödkänner
dessa siffror:
0 5 5,5 6 6,5 7 7,5 8 8,5 9 9,5 10
Jag skulle uppstatta mycket för hjälp med detta.

Jag skall testa ditt förslag.

Medlem sedan mars 20011 880 inlägg
#14

Brimba.
Det fungarade helt perfekt i alla läge.
Tusen tack för hjälpen

Medlem sedan juni 20019 519 inlägg
#15

Det var tur att någon förstod din fråga fick uppfattningen av att du var ute efter träffar::

  • 0 5 5
  • 5 6 6
  • 5 7 7
  • 5 8 8
  • 5 9 9
  • 5 10
Medlem sedan mars 20011 880 inlägg
#16

Ok jag skulle tydligen ha det på olika rader för lättförståelse, tack i alla fall

253 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)