webForumDet fria alternativet

Är den "rätt" gjort?

ASP

7 svar · 362 visningar · startad av joel_joel88

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

Hej!

Jag har nu försökt lärt mig regular expression genom att läsa denna bra artikeln
http://www.webeye.nu

Jag har då försökt göra en funktion som känner av en epostadress och gör om den till en länk. Jag har gjort det så här, det fungerar fint men min fråga är är den rätt gjort eller går den göra enklare?

objRegExp.pattern = "(w\*@\w*\.\S{2,3})"
strTxt = objRegExp.replace(strTxt, "<a href='mailto:$1' title='$1!'>$1</a>")

edit. Bytte ut [^] mot w\, såg at det skulle vara det.

Medlem sedan juni 2004533 inlägg
#2

Jag läste specifikationen för hur en epost-adress skulle se ut för ett tag sedan och gjorde det här mönstret: [\w\-%~\.]+@[\w\-\.]+\.[\w]{2,4}

(Enligt ditt mönster så är till exempel "@..." en epost-adress...)

Använd hellre citattecken än apostrofer runt egenskaperna i html-taggen.

objRegExp.pattern = "([\w\-%~\.]+@[\w\-\.]+\.[\w]{2,4})"
strTxt = objRegExp.replace(strTxt, "<a href=""mailto:$1"" title=""$1!"">$1</a>")
Medlem sedan nov. 20021 222 inlägg
#3

ok. Vad gör % tecknet för funktion.

Min fungerar fint den med. Det blir ingen epost-adress bara om jag skriver ett @. För att det ska bli en epost-adress så måste det minst vara två tecken framför @ och sedan några tecken, sedan en punk och minst två tecken efter den. Så fungerar min.

Medlem sedan nov. 20021 222 inlägg
#4

Har en fråga till angående Regexp.

Måste man dela in olika funktionstecken i []?

Medlem sedan nov. 20021 222 inlägg
#5

Såg nu att [] var för grupperingar. :)

Medlem sedan nov. 20021 222 inlägg
#6

Såg nu att det finns ett eget forum för Regulera uttryck. Får be om ursäkt moderatorerna att jag inte postade det där :)

Medlem sedan juni 2004533 inlägg
#7

joel_joel88 skrev:

Vad gör % tecknet för funktion.

Det är tecknet %. Det har ingen speciell funktion i ett regular expression.

joel_joel88 skrev:

Min fungerar fint den med. Det blir ingen epost-adress bara om jag skriver ett @. För att det ska bli en epost-adress så måste det minst vara två tecken framför @ och sedan några tecken, sedan en punk och minst två tecken efter den. Så fungerar min.

Nej, så fungerar den inte. Det behövs inte alls två tecken framför @. När du använder * så innebär det "noll eller fler gånger", alltså behöver det inte stå någonting alls före @. Det behöver heller inte stå någonting mellan @ och punkten. Och tecknen efter punkten kan vara vilka tecken som helst förutom 'white space', alltså mellanslag och liknande. Det kan alltså mycket väl vara två punkter.

Ifall du skriver @ följt av tre punkter (som jag skrev) så kommer det att uppfattas som en epost-adress av ditt mönster.

Medlem sedan nov. 20021 222 inlägg
#8

Tack för hjälpen, läste mer om regexp, fattar det rätt så bra nu! :) :D

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)