Ändra html text till normal text!
12 svar · 420 visningar · startad av Snakes
txt = txt.replace(/<br>/gi, "\n");
inte bara <br>..... utan ta bort all html
Jag ökar på Erik's exempel och lägger till en rad som tar bort all HTML efteråt. ".*" på första raden matchar alla tecken, så att till exmpel även <br /> matchas och ersätts av nyradstecken.
txt = txt.replace(/<br.*>/gi, "\n");
txt = txt.replace(/<.*>/gi, "");
men det kan ju inte funka..... då tar den bort en adress om den står så här
<adress@domain.se>
och det vill jag inte.....
förresten hur gör jag om jag vill ha tvärtom, från
txt.replace(/<br>/gi, "\n");
till
txt.replace(/\n/gi, "<br>");
eller?
nitro2k01 skrev:
Jag ökar på Erik's exempel och lägger till en rad som tar bort all HTML efteråt. ".*" på första raden matchar alla tecken, så att till exmpel även <br /> matchas och ersätts av nyradstecken.
txt = txt.replace(/<br.*>/gi, "\n"); txt = txt.replace(/<.*>/gi, "");
Dock söker regexpen girigt, så att ett mönster matchar så mycket som möjligt.
I strängen "ett**<br />två<br />**tre" kommer det felstilta att matchas av det första replace-anropet, och spotta ut strängen "ett\ntre" (med en radbrytning istället för \n).
Sökningen görs enklast till o-girig (ungreedy) så här:
txt = txt.replace(/<br.*?>/gi, "\n");
txt = txt.replace(/<.*?>/gi, "");
Snakes skrev:
men det kan ju inte funka..... då tar den bort en adress om den står så här
<adress@domain.se>
Hur vill du ha det då - ska HTML-taggar plockas bort eller inte?
Om svaret är "ibland", vilka regler är det som ska gälla?
Dectgap, man skulle ju kunna göra så att man har en regexp som replacar <person@doman.se> med [person@doman.se] om det finns ett @ i strängen. Dock så vet jag inte hur en sån regexp ser ut, men dectgap, du kanske vet, eller kan lista ut?
Snakes skrev:
förresten hur gör jag om jag vill ha tvärtom, från
txt.replace(/<br>/gi, "\n");
till
txt.replace(/\n/gi, "<br>");
eller?
Hur gör jag angående det? alltså jag har en editor som switchar från html till normal text och tvärtom
nitro2k01 skrev:
Dectgap, man skulle ju kunna göra så att man har en regexp som replacar <person@doman.se> med [person@doman.se] om det finns ett @ i strängen. Dock så vet jag inte hur en sån regexp ser ut, men dectgap, du kanske vet, eller kan lista ut?
Om jag, efter några enkla tester, förstår läsarna (IE, i både standards och quirks mode, och FireFox) rätt gör de rätt och tolkar <-tecken som början på en HTML-tagg och < som vilket tecken som helst.
Lösningen är alltså att man gör rätt, och istället för
<person@doman.se>
skriver man
<person@doman.se>
Visst går det att skriva en regexp som letar efter @-tecken i taggen, men om man bara gör rätt (använder < resp > för < resp >) ska det inte behövas (tror jag).
Då är det nog bättre att ta innerHTML från en div och sen ge till value på en textarea, och sen samma procedur baklänges.
Jag har redan en innerHTML och innerText
function setMode(bMode)
{
if (bMode!=g_state.bMode) {
g_state.bMode = bMode
var objBody = idEditbox.document.body
if (!bMode&& !g_state.bMode)
{
_CPopup_Hide()
objBody.bgColor = objBody.style.cssText = ""
if (g_state.customButtons)
idStandardBar.style.display = "none"
else
idToolbar.style.display = "none"
idEditbox.document.body.innerHTML = idEditbox.document.body.innerHTML.replace(/<br>/gi, "\n");
objBody.innerText = idEditbox.document.body.innerHTML
objBody.className = "textMode"
}
if ((bMode) && (g_state.bMode))
{
setDefaultStyle(g_state.css)
setBGColor(g_state.bgColor)
objBody.className = idStandardBar.style.display = idToolbar.style.display = ""
idEditbox.document.body.innerText= idEditbox.document.body.innerText.replace[B](/\n/gi, "<br>");[/B]
objBody.innerHTML = idEditbox.document.body.innerText
}
_setSize()
cbMode.checked = !bMode
_Editor_MoveSelection(true)
setFocus()
}
return bMode
}
hur gör jag då???
Och än en gång
Snakes skrev:
förresten hur gör jag om jag vill ha tvärtom, från
txt.replace(/<br>/gi, "\n");
till
txt.replace(/\n/gi, "<br>");
eller?
Hittade hur man ändrar
txt.replace(/<br>/gi, "\n");
till
txt.replace(/\\n/gi, \"<br>\");
Om jag får citera Mattias:
Hur vill du ha det då - ska HTML-taggar plockas bort eller inte?
Om svaret är "ibland", vilka regler är det som ska gälla?
:)