webForumDet fria alternativet

parsa en textsträng?

.NET

11 svar · 575 visningar · startad av NETwork

Medlem sedan juni 20011 732 inlägg
Frågan#1

Hej, nu är jag här och ställer dumma frågor igen. :)

Jag försöker plocka ut och lägga till text i en sträng. Vad jag vill: När en besökare skriver en länk (alltså http://blabla) i ett formulär så vill jag skriva ut den som en länk på sidan. Jag måste alltså hitta alla http i min sträng och dels plotta ut <a href... innan adressen, skriva </a> efter länknamnet men också få själva länken att hamna i href-taggen. Nån som kan?

------------------
Jag vill inte ha någon signatur.

Medlem sedan dec. 19998 577 inlägg
#2

Emission har gjort en bra i Vbscript, men det skall väl inte vara så svårt att översätta... :)
http://cgi.webforum.nu/wf/Forum11/HTML/001475.html#1

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 20011 732 inlägg
#3

Det där är rena grekiskan för mig... skulle behöva lite mer hjälp tror jag. Det behöver inte vara några konstigheter... bara söka efter "http" och sätta en riktig länk på textlänken.

------------------
Jag vill inte ha någon signatur.

Medlem sedan dec. 19998 577 inlägg
#4

Testade att göra en variant... i denna versionen måste det finnas http://, https://, ftp:// eller mailto: för att den skall konvertera... :)

Gjorde en funktion direkt:

public string Urlify(string strText) {
string pattern = @"(http://&#0124;https://&#0124;ftp://&#0124;mailto:)(\S)(\S+)";
Regex re = new Regex(pattern);
return re.Replace(strText,"<a href='$1$2$3'>$2$3</a>");
}

Bara att anropa på med Urlify(strängen)...

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 20008 205 inlägg
#5

Inte ska det väl vara \S efter protokollet? Borde inte mönstret vara (http://|https://|ftp://|mailto:)(\S+)?

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

Medlem sedan dec. 19998 577 inlägg
#6

mjo, jag kopierade emissions script, kanske kan han förklara varför han gjort så... jag klagar inte, "If it works, don't fix it" ;)

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 20011 732 inlägg
#7

Tack, funkar finfint! :) Vad gör (\S)(\S+) egentligen?

------------------
Jag vill inte ha någon signatur.

Medlem sedan dec. 19998 577 inlägg
#8

(\S) betyder "vilket icke-spacetecken som helst"

Du hittar alla mönster i min ASP-artikel om ReGex: http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_11.asp#pattern

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 20011 732 inlägg
#9

Mycket bra artikel, det där hade man fanimej nytta av att läsa!

------------------
Jag vill inte ha någon signatur.

Medlem sedan juni 20011 732 inlägg
#10

Sitter här och försöker trixa lite med regex. Jag ska nämligen spara ett lösenord i databasen. Tänkte att man skulle kunna vrida om lösenordet lite så att det åtminstone inte sparas i klartext.

Försöker göra två saker här men det går inte så bra. Först vill jag spegelvända ordet (alltså skriva ut det baklänges)... sedan vill jag försöka byta ut ett par bokstäver mot siffror, exempelvis d = 3, h = 8.

...och sedan såklart vrida tillbaka allt igen så att lösenordet blir "rätt". Någon som kan hjälpa mig med lite kul sätt att vrida och vända på ord?

------------------
Jag vill inte ha någon signatur.

Medlem sedan maj 2001329 inlägg
#11

Ja. Istället för att försöka kryptera passordet själv använd redan befintlig kryptering i .NET.

Ta en titt på denna matnyttiga adressen.
http://www.dotnet101.com/articles/art013_encrypt.asp

------------------
//Grynet

Medlem sedan juli 2001324 inlägg
#12

.

[Redigerat av Quazzo den 18 jan 2002]

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