2010-09-14 16 views
10

TreśćJak zamienić   na spację?

    Hello World. 

<a&nbsp;href="#"&nbsp;target=_blank>hello&nbsp;World</a> 

Jak wymienić &nbsp; w kodzie html i zachować inne &nbsp; w tekście.

+7

Jeśli to możliwe, powinien starać się nie wprowadzać ' ' do twojego kodu html w pierwsze miejsce. – Heinzi

+0

Tak, w jaki sposób dostałeś się do tej sytuacji? Pokaż nam ten kod. – Steven

+0

Jakiego programu używasz do tworzenia tego znacznika? –

Odpowiedz

4

można spróbować wyszukać

(?<=<[^>]*)&nbsp; 

i zastąpienie go jednym miejscu?

Wygląda to na wewnętrzne znaczniki &nbsp; (poprzedzone < i prawdopodobnie inne znaki oprócz >).

Jest to jednak bardzo kruche. Na przykład nie powiedzie się, jeśli masz symbole w ciągach/atrybutach. Lepiej unikać wprowadzania tych &nbsp; w złe lokalizacje.

+1

RegEx dla prostej zamiany? Wygląda to jak próba wystrzelenia jednej muchy z bombą atomową :) – Andrey

+4

@Andrey: To nie jest prosta wymiana. Możesz ponownie przeczytać ostatnią linię pytania. ;-) – Heinzi

+0

Dzięki. Działa dobrze. – AlphaWu

4

To proste

youString.Replace("&nbsp;", " "); 

klasa String http://msdn.microsoft.com/en-us/library/system.string.aspx

Wymień metody http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx

+2

Myślę, że to nie rozwiązuje problemu "zachowaj inne   w tekście". część ... – Heinzi

+0

zgadzam się, w tym przypadku powinien on używać wyrażeń regularnych. – Andrey

+0

Chociaż może to teoretycznie odpowiedzieć na pytanie, [byłoby lepiej] (// meta.stackoverflow.com/q/8259), aby uwzględnić istotne części odpowiedzi tutaj, i podać link dla odniesienia. –

0

To pozwoli Ci znaleźć wszystkie te paski tekstu zawierającego & nbsp:

<[^>]+?&nbsp;[^<]+?> 

Fropm tutaj możesz po prostu zrobić prosty ciąg zastępujący spację, ponieważ Regex da ci lcoację dopasowania w twoim tekście.

9

Dla mnie najlepszy jest:

Imports System.Web 
HttpUtility.HtmlDecode(codeHtml) 
+4

Kiedy zostawiasz odpowiedź, ważne jest, aby spróbować zrobić 2 rzeczy .... upewnij się, że odpowiedź zawiera pytanie, które chcesz zadać, i wyjaśnij, dlaczego Twoje rozwiązanie rozwiązuje problem. Jest to ważne, ponieważ nie każdy, kto czyta to pytanie, będzie ekspertem i nie będzie w stanie zobaczyć, jak rozwiązanie rozwiązuje problem. Rozważ edytowanie odpowiedzi, aby wyjaśnić, w jaki sposób rozwiązuje problem. – psubsee2003

+2

To jest właściwie najlepsza odpowiedź, choć słabo wyjaśniona. Zobacz dokumentację MSDN dla tego, co faktycznie robi HtmlDecode. – Dylan

1
string A = HttpContext.Current.Server.HtmlDecode(Text); 

string A = Text.Replace("&nbsp"," "); 

string A = Text.Replace("&amp;nbsp;", " "); 

          ↑ &amp;nbsp; 
0

tylko Wymień & nbsp do string.Empty po tekście jak poniżej ..

xyz.Text.Replace("&nbsp;", string.Empty);

Powiązane problemy