webForumDet fria alternativet

Regex problem

10 svar · 750 visningar · startad av Uwe

UweMedlem sedan nov. 2003181 inlägg
#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.

voigtann1Medlem sedan juni 20019 519 inlägg
#2

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

UweMedlem 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.

voigtann1Medlem 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...

UweMedlem 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.

Peter SMedlem sedan dec. 20025 483 inlägg
#6
if (Regex.IsMatch(str, "^(kalle|anka)$"))
  // fel
else
  // rätt
UweMedlem 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.

Peter SMedlem sedan dec. 20025 483 inlägg
#8

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

CatZMedlem 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 :)

UweMedlem sedan nov. 2003181 inlägg
#10

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

Peter SMedlem sedan dec. 20025 483 inlägg
#11

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

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)