webForumDet fria alternativet

Byta src på <img

Webbutveckling

8 svar · 467 visningar · startad av Jon

Medlem sedan juli 20011 304 inlägg
Frågan#1

Försöker knepa ihop ett regexp i c#.
Vill byta ut allt innehåll i src i alla <img taggar i en textmassa

Exempel:

<img src="test.jpg" /> ska bli <img src="http://www.test.com/test.jpg" />

Lyckas bara att få ut själva <img-taggarna. Kan ju parsa manuellt därifrån i varje match men det vore fräsigt att få ihop det i ett regexp

Några tips?

Medlem sedan dec. 20025 483 inlägg
#2

Så här kanske

res = Regex.Replace(txt, "<img src=\"(?![url]http://)([/url][^\"]+)\" />", "<img src=\"http://www.test.com/$1\" />", RegexOptions.IgnoreCase);
Medlem sedan juli 20011 304 inlägg
#3

Väldigt nära! :)

Behöver dock få med så att det låter attribut som sitter efter (och helst innan) vara kvar.

Dvs jag vill kunna gör samma sak med följande url:er

<img src="test/test.jpg" width="200" height="165" /> och
<img width="200" height="165" src="test/test.jpg" />

resultaten jag önskar är såklart:
<img src="http://www.test.com/test/test.jpg" width="200" height="165" />
<img width="200" height="165" src="http://www.test.com/test/test.jpg" />
Medlem sedan dec. 20025 483 inlägg
#4
res = Regex.Replace(txt, "<img ((?:(?!src)[a-z]+="[^"]+" )*)(?:src="(?![url]http://)([/url][^"]+)" )((?:(?!src)[a-z]+="[^"]+" )*)\/>", "<img $1src=\"http://www.test.com/$2\" $3/>", RegexOptions.IgnoreCase);
Medlem sedan juli 20011 304 inlägg
#5

Precis så!

Tack så mycket :)

Medlem sedan juni 200032 967 inlägg
#6

Men Jon!

Du borde väl vara tillräckligt gammal i gemet för att veta att det är inlägget med lösningen som ska accepteras som slutgiltigt svar? :)

Medlem sedan juli 20011 304 inlägg
#7

Jodå det vet jag!
Men jag kunde inte acceptera den posten av någon anledning (kanske för att det inte fanns text utan bara ett <code> - stycke?) Hursomhelst så tyckte jag att det var bättre att flagga mitt inlägg än inget alls ;)

Medlem sedan juni 200032 967 inlägg
#8

Men jag kunde inte acceptera den posten av någon anledning (kanske för att det inte fanns text utan bara ett <code> - stycke?)

Du måste skoja? Har du ingen länk längst till höger i det megabreda inlägget (du kanske måste scrolla?).

Hursomhelst så tyckte jag att det var bättre att flagga mitt inlägg än inget alls

Jepp! (y) :)

Medlem sedan juli 20011 304 inlägg
#9

Nu gick det - ordningen återställd på det världomspännande datanätet "internet"!
Måste ha varit något tillfälligt fel i browsern, min hjärna eller kanske både och :e

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)