![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 13 Dołączył: 7.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Robię na własny użytek prosty edytorek WYSIWYG. Po wklejeniu do niego tekstu z worda, wkleja się mnóstwo śmieciowego kodu. przykładowy fragment: Cytat <!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--> <p class="MsoNormal">aaaaaaaaaaaaaaa</p> Na dobrą sprawę powinien zostać tu tylko znacznik <p>, resztę można usunąć. Łatwo powiedzieć, trudniej zrobić (IMG:style_emoticons/default/wink.gif) Z wyrażeniami regularnymi jakoś mi nie po drodze, oporny jestem na nie, chociaż staram się. Mam taki kodzik: Kod string.replace(/(<!--\[if gte mso [0-9]\]>.*<!\[endif\]-->)/gi,'') Ale nie działa. Problemem są "<" pomiędzy komentarzami. jeśli by je usunąć wszystko działa. Podpowiedzcie proszę, jak to powinno wyglądać (IMG:style_emoticons/default/wink.gif) Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Problemem jest to, że nie czytasz dokumentacji (IMG:style_emoticons/default/smile.gif)
replace tylko zwraca nową wartość, ale nie modyfikuje starej: Kod <script>
string = '<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--> <p class="MsoNormal">aaaaaaaaaaaaaaa</p>'; string = string.replace(/(<!--\[if gte mso [0-9]\]>.*<!\[endif\]-->)/gi,''); alert( string ); </script> |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 13 Dołączył: 7.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Aż tak źle ze mną nie jest (IMG:style_emoticons/default/wink.gif) )
Kod $('.editor').text($('.editor').html().replace(/(<!--\[if gte mso [0-9]\]>.*<!\[endif\]-->)/gi,'') tak to w skrócie wygląda. powyższy kod zadziała, jeśli $('.editor').html() przyjmuje wartość niezawierającą innych tagów (a konkretnie znaków "<") |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Coś mi się wydaje, że metoda html() w jQuery psuje nam zabawę.
Wyalertuj to: $('.editor').html() i to: $('.editor').get(0).innerHTML; i wklej tu. Ten post edytował kamil4u 18.11.2012, 21:59:15 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 13 Dołączył: 7.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Też o tym myślałem, ale nie, to nie to. Wynik obu alertów jest dokładnie taki sam:
Kod <!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG></o:AllowPNG> </o:OfficeDocumentSettings> </xml><![endif]--> <p class="MsoNormal">aaaaaaaaaaaaaaa</p> Kod <!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG></o:AllowPNG> </o:OfficeDocumentSettings> </xml><![endif]--> <p class="MsoNormal">aaaaaaaaaaaaaaa</p> Edit: Alerty dają ten sam wynik, ale zamiana: Kod $('.editor').text($('.editor').html().replace(/(<!--\[if gte mso [0-9]\]>.*<!\[endif\]-->)/gi,'') na Kod $('.editor').text($('.editor').get(0).innerHTML.replace(/(<!--\[if gte mso [0-9]\]>.*<!\[endif\]-->)/gi,'') pomogła. Dzięki wielkie (IMG:style_emoticons/default/smile.gif) Ten post edytował Dapi 18.11.2012, 22:08:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 08:49 |