Avatar billede mille Nybegynder
10. december 2002 - 16:29 Der er 16 kommentarer

Udskift æøå men kun i <a href="æøå"> og ikke i andet HTML

Hvordan udskifter jeg æøå i et <a href="æ-ø-å"> tag, så det bliver til <a href="ae-oe-aa"> ??

Det må kun være i href taggen den skal gøre det

Jeg har fosøgt mig med RegExp men kan ikke få det til at virke....

Kan nogen hjælpe
Avatar billede medions Nybegynder
10. december 2002 - 16:31 #1
Udskriver du det vha. ASP eller hvordan forgår det?

-prøv at vis mig noget kode...

//>Rune
Avatar billede medions Nybegynder
10. december 2002 - 16:35 #2
Hvis du gør det vha. ASP kan du gøre sådan her:

<%
    Function ChangeChar(strChar)
        strChar = Replace(strChar,"æ","ae")
        strChar = Replace(strChar,"ø","oe")
        strChar = Replace(strChar,"å","aa")       
    End Function
   
    Response.Write("<a href=""" & ChangeChar("hjælp.htm") & """>link</a>")
%>

//>Rune
Avatar billede medions Nybegynder
10. december 2002 - 16:36 #3
Sorry sådan her var det ;o) :

<%
    Function ChangeChar(strChar)
        strChar = Replace(strChar,"æ","ae")
        strChar = Replace(strChar,"ø","oe")
        strChar = Replace(strChar,"å","aa")
       
        ChangeChar = strChar
    End Function
   
    Response.Write("<a href=""" & ChangeChar("hjælp.htm") & """>link</a>")
%>

//>Rune
Avatar billede eagleeye Praktikant
10. december 2002 - 16:55 #4
med regexp kunne det være:

function changeChar(str)
Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = True

regEx.Pattern = "(æ)"
str = regEx.Replace (str, "ae")

regEx.Pattern = "(ø)"
str = regEx.Replace (str, "oe")

regEx.Pattern = "(å)"
str = regEx.Replace (str, "aa")

Set regEx = Nothing
changeChar = str
end function



Og så på samme måde som medions skriver:

Response.Write ("<a href=""" & ChangeChar("hjælp.htm") & """>link</a>")
Avatar billede mille Nybegynder
10. december 2002 - 17:43 #5
min HTML kode bliver hentet fra en SQL database

dvs. hele HTML koden ligger i et felt i DB (hvorfor vides ikke !)

eks..

<a href="hjælp til ændre">hjælp til ændre</a>

den bliver så hentet ud med en SQL streng
Response.write Rs("HTML")

dette giver så en HTML som denne <a href="hjælp til ændre">hjælp til ændre</a>
Men den skal udskifte <a href> taggen til

<a href="hjaelp%20til%20aendre">hjælp til ændre</a>

den skal også fjerne mellemrummet

Jeg har også prøvet med HTML.encode men det virker heller ikke

/giver det nogen mening ??

//mille
Avatar billede medions Nybegynder
10. december 2002 - 17:52 #6
Så gør du bare sådan her:

<%
    Function ChangeChar(strChar)
        strChar = Replace(strChar,"æ","ae")
        strChar = Replace(strChar,"ø","oe")
        strChar = Replace(strChar,"å","aa")
       
        ChangeChar = strChar
    End Function
   
Response.write ChangeChar(Rs("HTML"))
%>

//>Rune
Avatar billede dgivoni Nybegynder
10. december 2002 - 18:23 #7
rune>> det udskifter da baade bogstaver i a-tagget og udenfor!
Det maa vel kunne goeres med regexp, men jeg kan ikke gennemskue hvordan...
Avatar billede medions Nybegynder
10. december 2002 - 18:27 #8
Well så gør vi da bare sådan her:

<%
    Function ChangeChar(strChar)
        arrWords = Split(strChar," ")
        For i = 0 To UBound(arrWords)
            If Not InStr(arrWords(i), "<a") Then
                strChar = Replace(strChar,"æ","ae")
                strChar = Replace(strChar,"ø","oe")
                strChar = Replace(strChar,"å","aa")
            End If
        Next
        ChangeChar = strChar
    End Function
   
Response.write ChangeChar(Rs("HTML"))
%>

//>Rune
Avatar billede dgivoni Nybegynder
10. december 2002 - 18:45 #9
Jeg gennemskuede det alligevel: her er en regexp-loesning...

regexp1 = /<a href=\"[^\"]*\">/
str = rs("html")
sstr = str.match(regexp1);
for i = 0 to sstr.length
  newstr = sstr[i].replace(/æ/g, "ae")
  newstr = newstr.replace(/ø/g, "oe")
  newstr = newstr.replace(/å/g, "aa")
  str = str.replace(sstr[i], newstr)
next

jeg beklager, hvis der er lidt fejl i koden. Jeg skrev den i javascript og har 'oversat' til vbscript uden at tjekke den
Avatar billede medions Nybegynder
10. december 2002 - 18:50 #10
dgivoni> En lille rettelse ;o)

regexp1 = /<a href=\"[^\"]*\">/
str = rs("html")
sstr = str.match(regexp1)
for i = 0 to UBound(sstr)
  newstr = sstr[i].replace(/æ/g, "ae")
  newstr = newstr.replace(/ø/g, "oe")
  newstr = newstr.replace(/å/g, "aa")
  str = str.replace(sstr[i], newstr)
next

str.match(regexp1); ved jeg ik' lige hvad kunne være i VB, da jeg ik' ved hvad Match gør! -Men det er ikke VB ihvertfald ;o)

//>RUne
Avatar billede dgivoni Nybegynder
10. december 2002 - 18:53 #11
nej, jeg sidder lige og forsoeger at faa det til at virke, men der er flere ting i vejen :-(
Match finder alle de forekomster af regexp1 og laegger dem i et array.
Avatar billede dgivoni Nybegynder
10. december 2002 - 18:56 #12
men paa den anden side saa skulle man jo kunne afvikle jscript-funktioner i vbscript, saa match burde ikke vaere et problem. (jeg tester videre...)
Avatar billede dgivoni Nybegynder
10. december 2002 - 19:06 #13
det her script goer det rigtigt i Jscript:
<%@ language="jscript"%>
<%
var regexp1 = /<a href=\"[^\"]*\">/;
var str = "ñlasjkd lñjkasæ-ø-ådflk <a href=\"fjasdk æ-ø-å asld asoiæ-ø-åf \"> af alñsæ-ø-ådj fif </a>";
var sstr = str.match(regexp1);
for(var i =0; i < sstr.length; i++)
  {
      newstr = sstr[i].replace(/æ/g, "ae");
      newstr = newstr.replace(/ø/g, "oe");
      newstr = newstr.replace(/å/g, "aa");
      str = str.replace(sstr[i], newstr);
  }
Response.write(str);
%>
Avatar billede dgivoni Nybegynder
10. december 2002 - 19:08 #14
ha' en god aften... jeg fortsaetter imorgen, hvis det er noedvendigt...
Avatar billede dgivoni Nybegynder
11. december 2002 - 11:00 #15
og her er en fungerende version i vbscript:

Dim regexp1, str, Matches, newstr, Match
Set regexp1 = New RegExp
regexp1.Pattern = "<a href=""[^""]*"">"
regexp1.Global = True
str = "ñlasjkd lñjkasæ-ø-ådflk <a href=""fjasdk æ-ø-å asld asoiæ-ø-åf ""> af alñsæ-ø-ådj fif </a>"
Set Matches = regexp1.Execute(str)
newstr = ""
For Each Match in Matches
      Response.write("match: <br>")
      newstr = Match.value
      newstr = replace(newstr, "æ", "ae")
      newstr = replace(newstr, "ø", "oe")
      newstr = replace(newstr, "å", "aa")
      str = replace(str, Match.value, newstr)
next

Execute goer det samme som Match i jscript.
Avatar billede dgivoni Nybegynder
11. december 2002 - 11:01 #16
str skal saa bare saettes lig rs("html") i stedet for den test-streng jeg har brugt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester