webForumDet fria alternativet

regex

JavaScript

7 svar · 804 visningar · startad av Flow

Medlem sedan dec. 200283 inlägg
Frågan#1

tja!

Håller på med ett valideringsscript till jQuery (http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/) men försöker skriva en egen regular expression för att kolla om ett fält innehåller orden "säljes" eller "köpes", om de existerar skall man få ett felmeddelande...

Såhär ser det ut idag:

"onlyLetter":{
"regex":"/^[a-zA-Z\ \']+$/",
"alertText":"* Endast bokstäver"}

Hur skall jag skriva denna för att det endast skall reagera när orden "säljes" eller "köpes" finns med i strängen?

mvh
Flow

Medlem sedan aug. 20039 340 inlägg
#2

Detta bör funka:

"/(köpes|säljes)/i"
Medlem sedan dec. 200283 inlägg
#3

Nu släpper den inte vidare om man inte har säljes eller köpes med i strängen...

Vill att det skall gå vidare om orden inte finns... alltså tvärtom...

mvh
Flow

Medlem sedan juli 2003555 inlägg
#4

Ta en titt på följande sida och se om du kan få ut något vettigt: http://www.codinghorror.com/blog/archives/000425.html

Medlem sedan dec. 20025 483 inlägg
#5
/^((?!köpes|säljes).)*/i
Medlem sedan dec. 200283 inlägg
#6

Peter S skrev:

/^((?!köpes|säljes).)*/i

Den här funkar nästan perfekt! Men den är inte case insensitive, skriver jag "bla säljes" så säger den ifrån, men inte om jag skriver "bla Säljes".

mvh
flow

Medlem sedan juli 2003555 inlägg
#7

testa med [sS][äÄ][lL][jJ][eE][sS] istället?

Medlem sedan dec. 20025 483 inlägg
#8

Så här borde det vara:

/^((?!köpes|säljes).)*$/i

I:et på slutet säger att matchningen skall vara insensitive, d.v.s. att ingen skillnad skall göras mellan gemener och versaler.

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)