webForumDet fria alternativet

Regex problem

.NET

10 svar · 750 visningar · startad av Uwe

Medlem sedan nov. 2003181 inlägg
Frågan#1

Jag är usel på regex och skulle uppskatta lite expertis.
I en RegularExpressionValidator på en sida vill jag att det inte ska gå att skriva vissa förutbestämda ord.

Skapar jag ett regex som ex (kalle)|(anka) så skulle det matcha mot just de två orden. I min validator vill jag visa fel om något av orden skrivs vilket innebär att jag behöver negera detta så att det inte matchas mot just de orden.

Medlem sedan juni 20019 519 inlägg
#2

Är det ord i en mening eller ett helt ord?
(kalle|anka) kommer matcha på "kallen" också.

Medlem sedan nov. 2003181 inlägg
#3

Som sagt är jag usel.
Det är hela ord och om man skriver ex kallen så är det ok.

Medlem sedan juni 20019 519 inlägg
#4

^(kalle|anka)$

innebär att man måste ha kalle eller anka i texten för validering, att kolla om den inte är ok vet jag inte direkt om det finns något vettigt i regExp, regexp letar efter uttryck som finns...

Medlem sedan nov. 2003181 inlägg
#5

Ok, det verkar funka. Men i min validering behöver jag ha negationen av detta dvs. att det inte får vara kalle eller anka. Alla andra namn är ok.

Vad jag kan hitta finns inget negationstecken eller parameter man kan lägga till.

Medlem sedan dec. 20025 483 inlägg
#6
if (Regex.IsMatch(str, "^(kalle|anka)$"))
  // fel
else
  // rätt
Medlem sedan nov. 2003181 inlägg
#7

Det är ju ett sätt, men då går det inte använda en regularexpressionvalidator utan måste då ha en custom validator. Då behöver sidan postas om i stället för att allt sköts på klienten.

Går det inte att lösa med ett regex så får det bli en sån lösning.

Medlem sedan dec. 20025 483 inlägg
#8

^(?!(?:kalle|anka)$)

Medlem sedan jan. 20022 440 inlägg
#9

Uwe skrev:

Det är ju ett sätt, men då går det inte använda en regularexpressionvalidator utan måste då ha en custom validator. Då behöver sidan postas om i stället för att allt sköts på klienten.

Går det inte att lösa med ett regex så får det bli en sån lösning.

Du kan ha en CustomValidator i en UpdatePanel så blir inte skadan så stor :)

Medlem sedan nov. 2003181 inlägg
#10

Det får bli en "fullösning" eftersom det verkar väldigt problematiskt att få till mha regex.

Medlem sedan dec. 20025 483 inlägg
#11

Jag är ganska övertygad om att #8 fungerar.

250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)