Hello Everyone,
The code works very well when converting break lines to html, smart characters and so on.
I like to add the functionallity to convert text links to hmtl hyperlinks.
Thank you in advance
The function is:
function replaceURLWithHTMLLinks(text)
{
var exp = /(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/gi;
return text.replace(exp,'<a href="$1">$1</a>');
}
Main file:
<!--[if IE 6]><style type="text/css">#main {width:575px;}#content {margin:0 10px 80px 10px;}#sidebar ul li {margin-bottom:-15px;background-color:#531717;}</style><![endif]-->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" >
function convertText(){
var brPref = document.getElementById("oldbr").checked;
if(brPref == 1 || brPref == true){
var linebs = '<br>';
}else{
var linebs = '<br />';
}
var jpTag = document.getElementById("pTag").checked;
var jpTagbrTag = document.getElementById("pTagbrTag").checked;
var jbrTag = document.getElementById("brTag").checked;
var noBreaks = document.getElementById("oldText").value;
//var tfEncode = $('#tfEncode:checked').val();
var tfEncode = $('input:checkbox[name=tfEncode]:checked').val();
noBreaks = noBreaks.replace(/\\r\
/g,"XiLBXZ");
noBreaks = noBreaks.replace(/\
/g,"XiLBXZ");
noBreaks = noBreaks.replace(/\\r/g,"XiLBXZ");
var i = noBreaks.length,
aRet = [];
if(tfEncode == "yes"){
while (i--) {
var iC = noBreaks [i].charCodeAt();
if (iC == 34 || iC == 38 || (iC ==96) || iC > 127) {
aRet[i] = '&#'+iC+';';
} else {
aRet[i] = noBreaks[i];
}
}
noBreaks = aRet.join('');
//Get rid of some odd balls
relq = /\\&\\#32\\;/g;
noBreaks = noBreaks.replace(relq," ");
relq = /\\&\\#10\\;/g;
noBreaks = noBreaks.replace(relq," ");
relq = /\\&\\#9\\;/g;
noBreaks = noBreaks.replace(relq," ");
//make some friendly replacements
var tf1 =new Array("©","®","²","³",""","&","–","—","‘","’","“","”","•","†","‡","′","″","‹","›","€","™","˜","ˆ","♠","♣","♥","♦","◊","←","→","↑","↓","↔","¬","¡","¢","£","¤","¥","¦","§","¨","ª","«","¬","*","¯","°","±","´","µ","¶","·","¸","¹","º","»","¼","½","¾","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","×","Ø","Ù","Ú","Û","Ü","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ý","þ","ÿ");
var tf2=new Array("©","®","²","³",""","&","–","—","‘","’","“","”","•","†","‡","′","″","‹","›","€","™","˜","ˆ","♠","♣","♥","♦","◊","←","→","↑","↓","↔","¬","¡","¢","£","¤","¥","¦","§","¨","ª","«","¬","­","¯","°","±","´","µ","¶","·","¸","¹","º","»","¼","½","¾","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","×","Ø","Ù","Ú","Û","&Uml;","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ý","þ","ÿ");
for (var ii = 0; ii < tf1.length; ii++) {
noBreaks = noBreaks.replace(new RegExp(tf1[ii],"g"),tf2[ii]);
}
}
//relq = /\\&\\;/g;
//oBreaks = noBreaks.replace(relq,'&amp;');
re1 = /\\s+/g;
noBreaks = noBreaks.replace(re1," ");
noBreaks = $.trim(noBreaks);
if(jbrTag != 0 || jbrTag != false){
re4 = /XiLBXZXiLBXZ/gi;
noBreaks = noBreaks.replace(re4,linebs+"\\r\
"+linebs+"\\r\
");
}else{
re4 = /XiLBXZXiLBXZ/gi;
noBreaks = noBreaks.replace(re4,"</p><p>");
}
if(jpTag == 0 || jpTag == false){
re5 = /XiLBXZ/gi;
noBreaks = noBreaks.replace(re5,linebs+"\\r\
");
}else{
re5 = /XiLBXZ/gi;
noBreaks = noBreaks.replace(re5," ");
}
if(jbrTag == 0 || jbrTag == false){
noBreaks ='<p>'+noBreaks+'</p>';
}
noBreaks = noBreaks.replace("<p><\\/p>","");
noBreaks = noBreaks.replace("\\r\
\\r\
","");
noBreaks = noBreaks.replace(/<\\/p><p>/g,"</p>\\r\
\\r\
<p>");
noBreaks = noBreaks.replace(new RegExp("<p><br />","g"),"<p>");
noBreaks = noBreaks.replace(new RegExp("<p><br>","g"),"<p>");
document.getElementById("newCode").value = noBreaks;
}
</script>
<form method="post">
<input type="radio" id="pTag" name="linebreaks" value="p" checked="checked" /> <strong><p></strong> only</p>
<input type="radio" id="pTagbrTag" name="linebreaks" value="pbr" /> <strong><p></strong> & <strong><br /></strong></p>
<input type="radio" id="brTag" name="linebreaks" value="br" /> <strong><br /></strong>: Use line break tags only</p><p>
<input type="radio" id="newbr" name="thebr" value="yes" checked="checked" /> <strong><br /></strong> or
<input type="radio" id="oldbr" name="thebr" value="yes" /> <strong><br></strong></p><p>
<input type="checkbox" name="tfEncode" class="tfEncode" value="yes" checked="checked" /> Encode characters with accents and similar</p><p>
<textarea id="oldText" name="oldText" rows="23" cols="100"></textarea></p><p>
<input type="button" name="Convert-Text-HTML" value="Convert Text to HTML" onclick="javascript:convertText()" class="frmbtn" /></p><p>
<textarea id="newCode" name="newCode" rows="23" cols="100"></textarea> </p>
</form>