Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


HTMLEncode och RegExp

Postades av 2004-06-09 09:00:20 - Peter Holm, i forum asp - allmänt, Tråden har 22 Kommentarer och lästs av 1017 personer

Håller på med en lite "replace" av smileys. Några enlka mönster ersätter t.ex. ;) med en bild. Så långt inga problem. Men eftersom jag kör Server.HTMLEncode innan jag presenterar texten så blir t.ex. ö = ö. Om man då avslutar en mening med ett ö och en parentes direkt efter, typ "ö)" så blir det en smiley i stället för parentesen. Ska jag skriva ett mönster som tar hänsyn till om det är två semikolon i rad (i så fall hur?) eller ska jag angripa problemet på något annat sätt?


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-09 10:41:45 - Thomas Vanhaniemi

Du kan använda Lookbehind och Lookahead i Regular Expressions för att bestämma om den ska fånga något eller inte.

Gör en sökning på google så hittar du nog en hel del exempel.

Det finns även väldigt mycket matnyttigt på www.regular-expressions.info.

Mvh,
Thomas Vanhaniemi


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-09 12:18:38 - Peter Holm

Det fanns en del matnyttigt på den länken. Det jag söker är "hitta x som inte har ett y framför sig". Jag kom fram till att detta borde fungera:
<code>
ra.pattern = "((?<!;);\))"
sOrigMessage = ra.Replace(sOrigMessage, ";<img border=""0"" src=""grafik/blink.gif"" width=""16"" height=""16"">")
</code>
Men jag får Syntax error in regular expression. Någon som ser felet, eller finns olika serverstöd för dessa funktioner?


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-14 00:26:50 - Thomas Vanhaniemi

Det finns ju en del specialtecken som man måste hantera...
En del är \ ( ) [ + ? .
Förstår jag dig rätt om du vill ersätta alla matchar på ;) där det inte föregås av &#999 till exempel?

Testa följande...

<code>
ra.pattern = "((?<!&#\d+);\))"
sOrigMessage = ra.Replace(sOrigMessage, "<img border=""0"" src=""grafik/blink.gif"" width=""16"" height=""16"">")
</code>

Ovanstående kod borde fungera, har däremot inte testat den så säg till om det krånglar eller om du vill ha mer hjälp med något!

Mvh,
Thomas Vanhaniemi


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-14 00:34:44 - Linus Enbom

Ja du kan göra som dom skrivit men du skulle också kunna ändra koden för att få smileys innan du ändrar ö o.s.v.


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-14 00:53:20 - Thomas Vanhaniemi

Det kan han inte göra för om han kör HTMLEncode på texten efter att han bytt ut tex ;) mot en html tag kommer den att skriva ut HTML taggen, inte ladda bilden...

Mvh,
Thomas Vanhaniemi


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-14 09:58:10 - Linus Enbom

Ja men HTMLEncode ändrar väl inte å ä ö... Det måste du väl göra själv?
Så om han skulle ha smilys direkt efter så skulle det väl funka?


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-14 11:05:34 - Thomas Vanhaniemi

Jodå, HTMLEncode ändrar även å ä och ö...

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-15 14:58:39 - Andreas Hillqvist

Varför ha en smiley som "kräver" tangentbord med Ö? Förutsätter du enbart svenska besökare?


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-17 15:48:13 - Göran Andersson

Du har nog missuppfattat frågeställningen. Han har ingen smiley som innehåller ö.

Det är när ö kodats som &#246; och följs av en parentes som det blir &#246;) och de sista två tecknen felaktigt omvandlas till en smiley.


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-17 16:31:07 - Linus Enbom

Det man skulle kunna göra är ju att ändra då man skriver ut koden... inte sparar den i databasen.
Borde inte det hjälpa?


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-17 16:45:58 - Thomas Vanhaniemi

Han skriver ju ut texten när han presenterar den...
Anledningen till att han använder Server.HTMLEncode är ju för att användaren inte ska kunna skriva in HTML kod.
Alla möjliga specialtecken ändras till t.ex. formen &#254;.
I databasen står det troligen ö istället för dess motsvarighet i formen ovan...

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-17 20:36:48 - Andreas Hillqvist

* Gör smily ersättningen.
* Kör HTMLEncode.
* Ersätt &lt och &gt image taggarna för dina smileys. t. ex.
<code>
Function UnescapeSmilies(Value)
Dim RegExp As RegExp
Set RegExp = New RegExp
RegExp.Global = False
RegExp.Pattern = "&lt(img border=""0"" src=""(grafik/blink\.gif|grafik/normal\.gif|grafik/happy\.gif)"" width=""16"" height=""16"")&gt"
UnescapeSmilies = RegExp.Replace(Value, "<$1>")
End Function
</code>


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-17 21:46:10 - Thomas Vanhaniemi

Varför krångla till det?
Koden jag skickat tidigare fungerar bra, använder Lookaround i Regular Expressions...

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 08:10:34 - Peter Holm

Har varit borta från tråden ett tag men märkte tacksamt att problemlösning har pågått. Tyvärr får jag samma felmeddelande på ditt tidigare förslag. När jag testar lite alternativ så verkar det skita sig när tecknet < kommer in i bilden. Kan det vara olika stöd för just lookbehind? Lookahed funkar fint, men det hjälper ju tyvärr inte mig.


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 09:35:44 - Thomas Vanhaniemi

Vad jag vet borde Lookbehind stödjas av Regular Expressions även i ASP.
Vad får du för felmeddelande?
Kan det inte vara något annat ställe som orsakar felet?

Hur går du tillväga när du hanterar texten?

När jag testade att få träffar i ett litet program jag skivit i VB.NET fungerade det finfint, träffade "Text;)" men inte till exempel "&#234;)".
Är du säker på att du hanterar RegExp rätt?

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 10:47:46 - Andreas Hillqvist

Jag chansar på att Lookaround inte stödjs. Det är därför jag föreslår en alternativ lösning:

Om du ser efter hos microsoft:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vspropattern.asp

Så ser du att det inte nämner Lookaround.

Att det är implementerat i VB.NET betyder inte att det funkar i VBScript i ASP. Så jag förstår inte varför du gör den jämförelsen. Äpplen är inte päron även om de påminner om varandra.


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 10:50:08 - Thomas Vanhaniemi

Jag jämför inte, men eftersom han, som jag minns det, skrev att Lookahead fungerar borde Lookbehind även det också fungera...

Nämnde bara att programmet är skrivet i VB.NET för att förtydliga att jag inte har haft samma förhållanden när jag testade mönstret...

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 10:54:17 - Thomas Vanhaniemi

Det är ofta Lookaround inte nämns för det är en rätt så avancerad sak att både skriva och beskriva samt hantera...
Man måste komma in på lite mer "avancerade" sidor för att få ordentliga beskrivningar...
Verkade som att Microsofts sida var en lite mer "ta på ytan" presentation för att man ska komma igång.

Men jag säger inte att Lookaround fungerar i VBScript RegExp för det har jag inga egna erfarenheter kring.

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 13:52:39 - Thomas Vanhaniemi

Hej!

Nu har jag testat lite med RegExp i VBScript och kommit fram till att Lookahead fungerar bra men Lookbehind stödjs inte, tyvärr...
Så du får köra med en liknande funktion som Andreas postade.

<code>
Private Function Fixtext(Text)
Dim RegExp
Set RegExp = New RegExp

Text = Replace(Text, ";)", "<img border=""0"" src=""grafik/blink.gif"" width=""16"" height=""16"">")

Text = Server.HTMLEncode(Text)

RegExp.Pattern = "&lt;img border=&quot;(\d+)&quot; src=&quot;(.+?)&quot; width=&quot;(\d+)&quot; height=&quot;(\d+)&quot;&gt;"
RegExp.Global = True
RegExp.IgnoreCase = True

Text = RegExp.Replace(Text, "<img border=""$1"" src=""$2"" width=""$3"" height=""$4"">")
Set RegExp = Nothing
Fixtext = Text
End Function
</code>

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-18 16:45:05 - Thomas Vanhaniemi

En till funktion för samma sak från mig, kanske lite enklare och tydligare...

<code>
Private Function Fixtext(Text)
Dim RegExp
Set RegExp = New RegExp

RegExp.Global = True
RegExp.IgnoreCase = True

'Ersätt smileys som ;) :\ =/ med ;-) :-\ och =-/ etc...
RegExp.Pattern = "([;:=])([\(\)/\\])"
Text = RegExp.Replace(Text, "$1-$2")

'Kör HTMLEncode
Text = Server.HTMLEncode(Text)

'Ersätt smileys med bilder
Text = Replace(Text, ";-)", "<img border=""0"" src=""grafik/blink.gif"" width=""16"" height=""16"">")
'Text = Replace(Text, ":-)", "<img border=""0"" src=""grafik/smile.gif"" width=""16"" height=""16"">")
'Text = Replace(Text, ":-/", "<img border=""0"" src=""grafik/sad.gif"" width=""16"" height=""16"">")
'etc...

Set RegExp = Nothing
Fixtext = Text
End Function
</code>

Mvh,
Thomas


Svara

Sv: HTMLEncode och RegExp

Postades av 2004-06-21 07:55:27 - Peter Holm

Tack för hjälpen allihop. Det kommer att dröja lite innan jag har möjlighet att testa förslagen på funktioner men eftersom vi har rett ut att att lookbehind tydligen inte fungerar i mitt fall så markerar jag tråden som löst för min del. Lägger in en blänkare när jag har fixat funktionen också.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 786
27 960
271 761
903
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies