Ja det virker fint hvis det ikke lige skal køre gennem en php-file da start tag til php er <? da får jeg fejl i :
var reg = /<? ..... HER
Og nu er spørsmålet om der ikke vil være mere hastighed i at lave alle tags til små bogstaver først, da jeg så kan ungå at bruge "i" da der er flere tags som skal erstattes ?
result = result.replace(/\r/g, ''); result = result.replace(/\n/g, ''); result = result.replace(/ /g, ' '); result = result.replace(/ /g, ' '); result = result.replace(/<[\/]*([A-Z]+)([^>]*?)>/ig, function(match){return match.toLowerCase()}); result = result.replace(/<span style.*?font-weight: bold;">(.*?)<\/span>/g, '<tag:b>$1</tag:b>'); result = result.replace(/<([\/]*)blockquote>/g, '<$1tag:quote>'); result = result.replace(/<font (size|color)=(.*?)>/g, '<tag:font $1=$2>'); result = result.replace(/<img.*?src="(.*?)".*?>/g, '<tag:img url=$1/>'); result = result.replace(/<a href="(.*?)">(.*?)<\/a>/g, '<tag:link url=$1>$2</tag:link>'); result = result.replace(/<([\/]*)strong>/g, '<$1tag:b>'); result = result.replace(/<([\/]*)(hr|br|ul|ol|li)[^>]*>/g, '<tag:$1>'); result = result.replace(/<\/font>/g, '<tag:$1>'); result = result.replace(/<(p|div) align=(.*?)>/g, '<tag:p align=$1>'); result = result.replace(/<(p|div)[^>]*>/g, '<tag:p>'); result = result.replace(/<\/(p|div)>/g, '</tag:p>'); result = result.replace(/<([\/]*)(b|i|u)[^>]*>/g, '<$1tag:$2>');
var reg = /<? echo"<"."?"; ?> ... Men det ?'tegn efter < havde vist intet formål :P
Har lige testet din første og de to jeg kastede, det med at rette til små bogstaver linjen henover og så gennemløbe igen er mest optimal, mine havde nogle dårlige ms. Tror det er fordi jeg kaldte henholdsvis a.match(/\//) eller reg.exec(a) for hvert match der blev fundet i replacen ...
"Og nu er spørsmålet om der ikke vil være mere hastighed i at lave alle tags til små bogstaver først, da jeg så kan ungå at bruge "i" da der er flere tags som skal erstattes ?"
Jeg tror du har helt ret, hvilket min test også viser... Umiddelbart er i vel ikke nødvendigt her: result = result.replace(/<[\/]*([A-Z]+)([^>]*?)>/ig, function(match){return match.toLowerCase()}); ... Hvis det ikke er A-Z, men a-z så behøver den ikke rette matchen.
Behold pointene ;)
/* IE: 125,625,328 */ /* FF: 328,891,656 */
function a(t){ var result = '<B>B</B><U>U</U><I>I</I>'; for(i=0;i<11;i++)result+=result; x=new Date().getTime();
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.