begin process at 2012 02 09 20:32:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > COLORATION PHP, CSS, HTML, JAVASCRIPT

COLORATION PHP, CSS, HTML, JAVASCRIPT


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Classé sous :coloration, syntaxique, php, javascript, css Niveau :Initié Date de création :13/10/2006 Date de mise à jour :23/10/2006 00:54:59 Vu / téléchargé :14 120 / 956

Auteur : Vince_02

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Je crois que le titre en dis déjà pas mal, c'est un script de
coloration syntaxique multi-language ( actuellement 4 ).

Pour le faire fonctionner :
Télécharger le zip et lancer le fichier html, coller un code
source dans le textarea, puis sélectionner votre type de coloration
et enfin, cliquer sur le bouton magique 'colore'.


Pour lancer la coloration a partir d'une de vos page html ou script,
=>
<script type="text/javascript">
<!--//
      ColoreCode(CodeSource,ObjetDest,Coloration)
//-->
</script>

CodeSource => Un simple texte ( code source d'une page html par ex. )
ObjetDest  => L'élément de destination qui recevra le code source coloré ( document.getElementById('IdDuneDiv') par ex. )
Coloration =>
     0 => Colore en fonction du tag détecter ( html + CSS + Javascript + PHP ) ( plus long )
     1 => Coloration HTML
     2 => Coloration CSS
     3 => Coloration JavaScript
     4 => Coloration PHP

Les Styles CSS sont dans le fichier colore_code.html

Dite moi ce que vous en pensez ^^

Note : Il exist encore quelque bug qui seront corrigé ;)

Source

  • // Script Coloration Syntaxique HTML, CSS, JavaScript, PHP
  • function Init() {
  • ColoreCode();
  • }
  • /*
  • * Colorer le code en (SelColore) :
  • * 0 -> les 4 languages confondu ( effectué s'il croise leur tag correspondant )
  • * 1 -> HTML
  • * 2 -> CSS
  • * 3 -> JavaScript
  • * 4 -> PHP
  • *
  • * Numéroter les lignes (Num):
  • * true -> numérote les lignes + souligne la ligne au passage de la sourie
  • * false -> ne numérote pas les lignes
  • *
  • * Src => texte source
  • * Dest => l'objet de destination prêt a recevoir le code Html
  • *
  • */
  • function ColoreCode(Src, Dest, SelColore, Num) {
  • var tms = new Date();
  • var tpsDep = tms.getTime(); /* date en ms */
  • parent.NbLn = 0; /* Compteur de Ligne */
  • var text = ColorSrc(Src, SelColore, Num);
  • if (Num) {
  • text = '<table cellpadding="0" cellspacing="0" class="CodeSource">'+addNumLn(text)+'</table>';
  • } else {
  • text = '<code id="CodeSource" class="CodeSource">'+text+'</code>';
  • }
  • Dest.innerHTML = text;
  • tms = new Date();
  • var tpsFin = tms.getTime();
  • /** Commenter les 4 lignes si vous n'en voulez pas **/
  • try {
  • document.getElementById('CODE_TimeStamp').innerHTML = 'Temps d\éxécution : '+((tpsFin-tpsDep)/1000)+' Secondes pour '+parent.NbLn+' Lignes.';
  • } catch(e) {
  • alert('Temps d\éxécution : '+((tpsFin-tpsDep)/1000)+' Secondes\r\nNombre de ligne : '+parent.NbLn);
  • }
  • return false;
  • }
  • function ColorSrc(s, Sel, Num) {
  • t = RemoveChar(s);
  • switch(Sel) {
  • case 0:
  • t = t.replace(/(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/gim, function(st) { return '<CODE_CSS>'+ColorCSS(st)+'</CODE_CSS>';} ); // style CSS
  • t = t.replace(/(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/gi, function(st) { return '<CODE_JS>'+ColorJSC(st)+'</CODE_JS>';} ); // javascript
  • t = t.replace(/(&lt;\?.*?\?&gt;)/gi, function(st) { return '<CODE_PHP>'+ColorPHP(st)+'</CODE_PHP>';} ); // Code PHP
  • t = t.replace(/(&lt;html.*?&lt;\/html&gt;)/gi, function(st) { return '<CODE_HTM>'+ColorHTML(st)+'</CODE_HTM>';} ); // html
  • t = t.replace(/<(CODE_HTM|CODE_CSS|CODE_JS|CODE_CSS|CODE_PHP)>/g, '<span class="$1">');
  • t = t.replace(/<\/(CODE_HTM|CODE_CSS|CODE_JS|CODE_CSS|CODE_PHP)>/g, '</span>');
  • break;
  • case 1:
  • t = '<span class="CODE_HTM">'+ColorHTML(t)+'</span>';
  • break;
  • case 2:
  • t = '<span class="CODE_CSS">'+ColorCSS(t)+'</span>';
  • break;
  • case 3:
  • t = '<span class="CODE_JS">'+ColorJSC(t)+'</span>';
  • break;
  • case 4:
  • t = '<span class="CODE_PHP">'+ColorPHP(t)+'</span>';
  • break;
  • }
  • t = CleanTag(t);
  • t = ReplaceChar(t);
  • return t;
  • }
  • /*** Coloration Javascript ***/
  • function ColorJSC(s) {
  • /* Expression Régulière */
  • s = s.replace(/(\()(\/)([^\/<>]*?)(\/)([gim\)]+)/g, '$1<b>$2$3$4</b>$5'); // ça bug ...
  • /* Mots réservé */
  • s = s.replace(/\b(window|document|layer|self|opener|location|body|parent|screen)\b([\.\(\)])/gi, '<i>$1</i>$2');
  • s = s.replace(/(\.)\b(getElementById|getElementsByTagName|getElementsByName|item|forms|element)\b([\.\[\(])/gi, '$1<em>$2</em>$3');
  • s = s.replace(/\b(alert|prompt|focus|blur|open|close|find|event|navigator|submit|scroll|clearTimeout|clearInterval)\b/gi, '<big>$1</big>');
  • s = s.replace(/(\.)\b(designMode|keyCode|charCode|select|text|clear|appName|value|innerHTML|innerText|match|replace|search|exec|test|write|writeln|length|substr|substring|indexOf|lastIndexOf|getSelection|left|right|down|top|width|height|offsetLeft|offsetRight|offsetTop|offsetDown|offsetWidth|offsetHeight|style|value|escape|unescape|Object|valueOf|String|toString|setTimeout|setInterval|Math|parseInt|parse|parseFloat|Array|isNaN|name|id|status|Number|addEventListener|onmouseup|onmousedown|onclick|onmouseover|onmouseout|onkeypress|onkeydown|onkeyup|onload|onunload|onblur|onfocus|onsubmit|onchange|execCommand|pasteHTML|selection|createRange|getRangeAt|createTextRange|insertNode|createElement|appendChild|removeChild|firstChild|rangeCount|childNodes|nodeType|parentElement|setAttribute|getAttribute|insertBefore|addRange|removeAllRanges|parentNode|cloneNode|nodeValue|startContanier|deleteContents|toLowerCase|toUpperCase|tagName|button|which|type)\b/gi, '$1<u>$2</u>');
  • s = s.replace(/(\.?)\b(setTimeout|setInterval|Math|parseInt|parse|parseFloat|Array|Number|eval|RegExp)\b/gi, '$1<u>$2</u>');
  • s = s.replace(/\b(for|if|else|switch|case|break|default|return|while|do|try|catch|throws|int|boolean|label|goto)\b/gi, '<small>$1</small>');
  • s = s.replace(/\b(function|class|var|new)\b/gi, '<var>$1</var>');
  • /* Décimaux */
  • s = s.replace(/(=|\+|\*|\-|\[|\(|,|;|\s)(\s?)([\d]+)/g, '$1$2<sup>$3</sup>');
  • // Booléen
  • s = s.replace(/\b(null|true|false)\b/gi, '<s>$1</s>');
  • // quotes double
  • s = s.replace(/([\s=;\:\+\.\(\[,])(")([^"]*?)(")/g, '$1<strike>$2$3$4</strike>');
  • // quotes simple
  • s = s.replace(/([\s=;\:\+\.\(\[,])(')([^']*?)(')/g, '$1<strike>$2$3$4</strike>');
  • // &&, ||, <=, >=, !=, += etc ...
  • s = s.replace(/(&amp;&amp;|&#124;&#124;|\!=|==|\+=|&lt;=|&gt;=|\[|\]|\{|\}|\(|\))/gi, '<s>$1</s>');
  • // Commentaires
  • s = s.replace(/(\/\*)(.*?)(\*\/)/g, '<cite>$1$2$3</cite>');
  • s = s.replace(/([^:])(\/\/.*?)(<br \/>)/g, '$1<cite>$2</cite>$3');
  • return s;
  • }
  • /*** Coloration CSS ***/
  • function ColorCSS(s) {
  • /* class/tag/id:évenement */
  • s = s.replace(/([A-Za-z0-9\:_\-, \.#]+)(\{)/g, function(st) { return st.replace(/([A-Za-z0-9_-]+)(\:?)([A-Za-z0-9_-]*)/g, '<s>$1</s>$2<em>$3</em>'); });
  • /* Attribut:value; */
  • s = s.replace(/(\s?)([A-Za-z0-9_-]+)(:)([^;\/]+?)(\s?)(;)/gi, '$1<u>$2</u>$3<i>$4</i>$5$6');
  • /* Chaine de caractère */
  • s = s.replace(/(")([^"]*?)(")/g, '<strike>$1$2$3</strike>');
  • s = s.replace(/(')([^']*?)(')/g, '<strike>$1$2$3</strike>');
  • /* Commentaire */
  • s = s.replace(/(\/\*)(.*?)(\*\/)/g, function(st) { st = CleanTag(st); return '<cite>'+st+'</cite>'; });
  • return s;
  • }
  • /*** Coloration (x)HTLM / XML ***/
  • function ColorHTML(s) {
  • //if (s.
  • // attributs="value" ( double quote )
  • s = s.replace(/([A-Za-z_-]+=)(")([^"<>]*?)(")/g, '<i>$1</i><s>$2$3$4</s>');
  • // attributs='value' ( simple quote )
  • s = s.replace(/([A-Za-z_-]+=)(')([^'<>]*?)(')/g, '<i>$1</i><s>$2$3$4</s>');
  • // tags
  • s = s.replace(/(&lt;)(\/?)([A-Za-z0-9]+)/g, '$1$2<u>$3</u>');
  • // doctype
  • s = s.replace(/(&lt;!doctype)([^|]*)(&gt;)/gi, '<span class="HTM_Doc">$1$2$3</span>');
  • // xml
  • s = s.replace(/(&lt;\?xml)([^|]*)(&gt;)/gi, '<span class="HTM_Xml">$1$2$3</span>');
  • // commentaires
  • s = s.replace(/(&lt;\!\-\-.*?\-\-&gt;)/gi, function(h) { h = CleanTag(h);
  • h = h.replace(/\"/g, '&quot;');
  • h = h.replace(/\'/g, '&#039;');
  • return '<cite>'+h+'</cite>'; });
  • return s;
  • }
  • /*** Coloration PHP ***/
  • function ColorPHP(s) {
  • s = s.replace(/<br \/>/g, '\n');
  • s = s.replace(/<\S[^><]*?>/g, '');
  • s = s.replace(/\n/g, '<br \/>');
  • // tag <?, <?php, ?>
  • s = s.replace(/(&lt;\?php|&lt;\?|\?&gt;)/g, '<big>$1</big>');
  • // Boucle, Condition, et autres ...
  • s = s.replace(/\b(if|while|for|do|else|endif|endfor|endwhile|endswitch|case|return|break|case|default|echo|print_r|printf|print|exit|die|foreach|throw|try|catch)\b(\s?)/gi, '<small>$1</small>$2');
  • // du type function truc () , class truc(), var $machin
  • s = s.replace(/\b(function|var|class|global|new|static|extends|public|private)\b/g, '<i>$1</i>');
  • // du type mysql_connect(), fopen() ...
  • s = s.replace(/([A-Za-z0-9_]+)([\s]*)(\(|\{)/g, '<u>$1</u>$2$3');
  • // les variables ( $truc );
  • s = s.replace(/(\$[A-Za-z0-9_\-]+)/g, '<var>$1</var>');
  • s = s.replace(/\b(this)\b(\-&gt;)/g, '<var>$&1-&gt;</var>');
  • // les décimaux
  • s = s.replace(/(=|\+|\*|\-|\[|\(| |,|;)([\d]+)/g, '$1<sup>$2</sup>');
  • // Booléen, et caractère divers
  • s = s.replace(/\b(false|true|null|and|or|xor|as)\b/g, '<em>$1</em>');
  • s = s.replace(/(==|\!=|&amp;&amp;|&#124;&#124;|&lt;=|&gt;=|\(|\[|\]|\)|\{|\})/g, '<em>$1</em>');
  • // Expression régulière
  • s = s.replace(/(\(|=)(#|@)(.*?)(#|@)/g, '$1<b>$2$3$4</b>');
  • // quotes double
  • //s = s.replace(/(\s|\[|\(|=|\.|,)(")([^"]*)(")/g, '$1<strike>$2$3$4</strike>');
  • s = s.replace(/(")([^"]*)(")/g, '<strike>$1$2$3</strike>');
  • // quotes simple
  • //s = s.replace(/(\s|\[|\(|=|\.|,)(')([^']*)(')/g, '$1<strike>$2$3$4</strike>');
  • s = s.replace(/(')([^']*)(')/g, '<strike>$1$2$3</strike>');
  • // Commentaires
  • s = s.replace(/(\/\*.*?\*\/)/g, '<cite>$1</cite>');
  • s = s.replace(/(\s|<br \/>)(\/\/|#)(.*?)(<br \/>)/g, '$1<cite>$2$3</cite>$4');
  • return s;
  • }
  • function addNumLn(s) {
  • parent.TagAdd = parent.TagEnd = parent.Class = ''; /** récupère la classe des tags span croisé au passage **/
  • parent.NbLn = 0; /** compteur de ligne **/
  • Ln = s+'<br />';
  • Ln = Ln.replace(/(.*?<br \/>)/g, function(st) {
  • parent.NbLn++;
  • endTag = false;
  • if (st.match(/<span class="[^"]*?">/)) {
  • parent.Class = st.match(/<span class="([^"]*?)">/)[st.match(/<span class="([^"]*?)">/).length-1];
  • st = st.replace(/<span class="[^"]*?">/g, ''); /** après récupération de la class, on efface le tag inutile **/
  • } else if (st.indexOf('</span>') != -1) {
  • parent.Class = 'CODE_HTM';
  • } else if (st.indexOf('<cite>') != -1 && st.indexOf('</cite>') == -1) { /** corrige un p'tit bug de commentaire multi-ligne **/
  • parent.TagAdd = '<cite>';
  • parent.TagEnd = '</cite>';
  • } else if (st.indexOf('</cite>') != -1) { /** met fin au commentaire multi-ligne **/
  • endTag = true;
  • }
  • st = '<tr><td class="CODE_NumLn">'+parent.NbLn+'</td><td class="'+parent.Class+'">'+parent.TagAdd+st+parent.TagEnd+'</td></tr>';
  • if (endTag) {
  • parent.TagAdd = '';
  • parent.TagEnd = '';
  • }
  • return st;
  • });
  • Ln = Ln.replace(/<\/span>/g, '');
  • return Ln;
  • }
  • /** Supprime les Tags HTML inutile et/ou en trop **/
  • function CleanTag(s) {
  • Clean = function(st1) {
  • st1 = st1.replace(/<br \/>/gi, '\n');
  • st1 = st1.replace(/<\S[^><]*?>/gm, '')
  • st1 = st1.replace(/\n/gm, '<br />');
  • return st1;
  • }
  • s = s.replace(/(<strike>.*?<\/strike>)/gi, function(st) { return '<strike>'+Clean(st)+'</strike>'; } );
  • s = s.replace(/(<b>.*?<\/b>)/gi, function(st) { return '<b>'+Clean(st)+'</b>'; } );
  • s = s.replace(/(<cite>.*?<\/cite>)/gi, function(st) { return '<cite>'+Clean(st)+'</cite>'; } );
  • return s
  • }
  • /** Encode les caractères pouvant géner le parseur **/
  • function RemoveChar(s) {
  • Remove = function(St) {
  • St = St.replace(/&lt;/g, '&lsaquo;');
  • St = St.replace(/&gt;/g, '&rsaquo;');
  • return St;
  • }
  • s = s.replace(/&/gm, '&amp;');
  • s = s.replace(/\|/gm, '&#124;');
  • s = s.replace(/\\\//gm, '\\&#47;');
  • s = s.replace(/\\\\/gm, '&#92;&#92;');
  • s = s.replace(/\\/gm, '\\');
  • s = s.replace(/\\'/gm, '\\&#039;');
  • s = s.replace(/\\"/gm, '\\&quot;');
  • s = s.replace(/</gm, '&lt;');
  • s = s.replace(/>/gm, '&gt;');
  • s = s.replace(/\t/gm, ' ');
  • s = s.replace(/\r?\n/g, function(t) { parent.NbLn++; return '<br />'; });
  • s = s.replace(/(\s\/\*.*?\*\/\s)/g, function(st) { st = st.replace(/\'/g, '\\&#039;'); st = st.replace(/\"/g, '\\&quot;'); return Remove(st); });
  • s = s.replace(/<br \/>\/\*.*?\*\/<br \/>/g, function(st) { st = st.replace(/\'/g, '\\&#039;'); st = st.replace(/\"/g, '\\&quot;'); return Remove(st); });
  • s = s.replace(/(\s\/\/)(.*?<br \/>)/g, function(st) { st = st.replace(/\'/g, '&#039;'); st = st.replace(/\"/g, '&quot;'); return Remove(st); });
  • s = s.replace(/(<br \/>\/\/)(.*?<br \/>)/g, function(st) { st = st.replace(/\'/g, '&#039;'); st = st.replace(/\"/g, '&quot;'); return Remove(st); });
  • s = s.replace(/([\s=;\:\+\.\(\[,])("[^"]*?")/g, function(st) { st = st.replace(/\'/g, '&#039;'); return Remove(st); });
  • s = s.replace(/([\s=;\:\+\.\(\[,])('[^']*?')/g, function(st) { st = st.replace(/\"/g, '&quot;'); return Remove(st); });
  • s = s.replace(/(\(\/[^\/]*?\/)/g, function(st) { st = st.replace(/'/g, '&#039;'); st = st.replace(/"/g, '&quot;'); return Remove(st); });
  • return s;
  • }
  • /** Décode les caractères nécessaire dernièrement encodé **/
  • function ReplaceChar(s) {
  • Replace = function(St) {
  • St = St.replace(/&lsaquo;/g, '&lt;');
  • St = St.replace(/&rsaquo;/g, '&gt;');
  • St = St.replace(/&quot;/g, '"');
  • St = St.replace(/&#039;/g, "'");
  • St = St.replace(/ /g, "&nbsp;&nbsp;");
  • St = St.replace(/> /g, ">&nbsp;");
  • return St;
  • }
  • return Replace(s);
  • }
// Script Coloration Syntaxique HTML, CSS, JavaScript, PHP

function Init() {
	ColoreCode();
}

/*
 * Colorer le code en (SelColore) :
 * 0 -> les 4 languages confondu ( effectué s'il croise leur tag correspondant )
 * 1 -> HTML
 * 2 -> CSS
 * 3 -> JavaScript
 * 4 -> PHP
 *
 * Numéroter les lignes (Num):
 * true -> numérote les lignes + souligne la ligne au passage de la sourie
 * false -> ne numérote pas les lignes
 *
 * Src => texte source
 * Dest => l'objet de destination prêt a recevoir le code Html
 *
 */

function ColoreCode(Src, Dest, SelColore, Num) {
	
	var tms = new Date(); 
	var tpsDep = tms.getTime(); /* date en ms */
	
	parent.NbLn = 0; /* Compteur de Ligne */
	
	var text = ColorSrc(Src, SelColore, Num);
	if (Num) {
		text = '<table cellpadding="0" cellspacing="0" class="CodeSource">'+addNumLn(text)+'</table>';
	} else {
		text = '<code id="CodeSource" class="CodeSource">'+text+'</code>';
	}
	
	Dest.innerHTML = text;
	
	tms = new Date();
	var tpsFin = tms.getTime();
	
	/** Commenter les 4 lignes si vous n'en voulez pas **/
	try {
		document.getElementById('CODE_TimeStamp').innerHTML = 'Temps d\éxécution : '+((tpsFin-tpsDep)/1000)+' Secondes pour '+parent.NbLn+' Lignes.';
	} catch(e) {
		alert('Temps d\éxécution : '+((tpsFin-tpsDep)/1000)+' Secondes\r\nNombre de ligne : '+parent.NbLn);
	}
	
	return false;
	
}

function ColorSrc(s, Sel, Num) {
	
	t = RemoveChar(s);
	
	switch(Sel) {
		case 0:
			t = t.replace(/(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/gim, function(st) { return '<CODE_CSS>'+ColorCSS(st)+'</CODE_CSS>';} ); // style CSS
			t = t.replace(/(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/gi, function(st) { return '<CODE_JS>'+ColorJSC(st)+'</CODE_JS>';} ); // javascript
			t = t.replace(/(&lt;\?.*?\?&gt;)/gi, function(st) { return '<CODE_PHP>'+ColorPHP(st)+'</CODE_PHP>';} ); // Code PHP
			t = t.replace(/(&lt;html.*?&lt;\/html&gt;)/gi, function(st) { return '<CODE_HTM>'+ColorHTML(st)+'</CODE_HTM>';} ); // html
			t = t.replace(/<(CODE_HTM|CODE_CSS|CODE_JS|CODE_CSS|CODE_PHP)>/g, '<span class="$1">');
			t = t.replace(/<\/(CODE_HTM|CODE_CSS|CODE_JS|CODE_CSS|CODE_PHP)>/g, '</span>');
			break;
		case 1:
			t = '<span class="CODE_HTM">'+ColorHTML(t)+'</span>';
			break;
		case 2:
			t = '<span class="CODE_CSS">'+ColorCSS(t)+'</span>';
			break;
		case 3:
			t = '<span class="CODE_JS">'+ColorJSC(t)+'</span>';
			break;
		case 4:
			t = '<span class="CODE_PHP">'+ColorPHP(t)+'</span>';
			break;
	}
	
	t = CleanTag(t);
	
	t = ReplaceChar(t);
	
	return t;
}

/*** Coloration Javascript ***/
function ColorJSC(s) {
	
	/* Expression Régulière */
	s = s.replace(/(\()(\/)([^\/<>]*?)(\/)([gim\)]+)/g, '$1<b>$2$3$4</b>$5'); // ça bug ...

	/* Mots réservé */
	s = s.replace(/\b(window|document|layer|self|opener|location|body|parent|screen)\b([\.\(\)])/gi, '<i>$1</i>$2');
	s = s.replace(/(\.)\b(getElementById|getElementsByTagName|getElementsByName|item|forms|element)\b([\.\[\(])/gi, '$1<em>$2</em>$3');
	s = s.replace(/\b(alert|prompt|focus|blur|open|close|find|event|navigator|submit|scroll|clearTimeout|clearInterval)\b/gi, '<big>$1</big>');
	s = s.replace(/(\.)\b(designMode|keyCode|charCode|select|text|clear|appName|value|innerHTML|innerText|match|replace|search|exec|test|write|writeln|length|substr|substring|indexOf|lastIndexOf|getSelection|left|right|down|top|width|height|offsetLeft|offsetRight|offsetTop|offsetDown|offsetWidth|offsetHeight|style|value|escape|unescape|Object|valueOf|String|toString|setTimeout|setInterval|Math|parseInt|parse|parseFloat|Array|isNaN|name|id|status|Number|addEventListener|onmouseup|onmousedown|onclick|onmouseover|onmouseout|onkeypress|onkeydown|onkeyup|onload|onunload|onblur|onfocus|onsubmit|onchange|execCommand|pasteHTML|selection|createRange|getRangeAt|createTextRange|insertNode|createElement|appendChild|removeChild|firstChild|rangeCount|childNodes|nodeType|parentElement|setAttribute|getAttribute|insertBefore|addRange|removeAllRanges|parentNode|cloneNode|nodeValue|startContanier|deleteContents|toLowerCase|toUpperCase|tagName|button|which|type)\b/gi, '$1<u>$2</u>');
	
	s = s.replace(/(\.?)\b(setTimeout|setInterval|Math|parseInt|parse|parseFloat|Array|Number|eval|RegExp)\b/gi, '$1<u>$2</u>');
	
	s = s.replace(/\b(for|if|else|switch|case|break|default|return|while|do|try|catch|throws|int|boolean|label|goto)\b/gi, '<small>$1</small>');
	s = s.replace(/\b(function|class|var|new)\b/gi, '<var>$1</var>');
	
	/* Décimaux */
	s = s.replace(/(=|\+|\*|\-|\[|\(|,|;|\s)(\s?)([\d]+)/g, '$1$2<sup>$3</sup>');
	
	// Booléen
	s = s.replace(/\b(null|true|false)\b/gi, '<s>$1</s>');
	
	// quotes double
	s = s.replace(/([\s=;\:\+\.\(\[,])(")([^"]*?)(")/g, '$1<strike>$2$3$4</strike>');
	
	// quotes simple
	s = s.replace(/([\s=;\:\+\.\(\[,])(')([^']*?)(')/g, '$1<strike>$2$3$4</strike>');
	
	// &&, ||, <=, >=, !=, += etc ... 
	s = s.replace(/(&amp;&amp;|&#124;&#124;|\!=|==|\+=|&lt;=|&gt;=|\[|\]|\{|\}|\(|\))/gi, '<s>$1</s>');
	
	// Commentaires
	s = s.replace(/(\/\*)(.*?)(\*\/)/g, '<cite>$1$2$3</cite>');
	s = s.replace(/([^:])(\/\/.*?)(<br \/>)/g, '$1<cite>$2</cite>$3');
	
	return s;
}

/*** Coloration CSS ***/
function ColorCSS(s) {
	
	/* class/tag/id:évenement */
	s = s.replace(/([A-Za-z0-9\:_\-, \.#]+)(\{)/g, function(st) { return st.replace(/([A-Za-z0-9_-]+)(\:?)([A-Za-z0-9_-]*)/g, '<s>$1</s>$2<em>$3</em>'); });
	/* Attribut:value; */
	s = s.replace(/(\s?)([A-Za-z0-9_-]+)(:)([^;\/]+?)(\s?)(;)/gi, '$1<u>$2</u>$3<i>$4</i>$5$6');
	
	/* Chaine de caractère */
	s = s.replace(/(")([^"]*?)(")/g, '<strike>$1$2$3</strike>');
	s = s.replace(/(')([^']*?)(')/g, '<strike>$1$2$3</strike>');
	
	/* Commentaire */
	s = s.replace(/(\/\*)(.*?)(\*\/)/g, function(st) { st = CleanTag(st); return '<cite>'+st+'</cite>'; });
	
	return s;
}

/*** Coloration (x)HTLM / XML ***/
function ColorHTML(s) {
	//if (s.
	// attributs="value" ( double quote )
	s = s.replace(/([A-Za-z_-]+=)(")([^"<>]*?)(")/g, '<i>$1</i><s>$2$3$4</s>');
	// attributs='value' ( simple quote )
	s = s.replace(/([A-Za-z_-]+=)(')([^'<>]*?)(')/g, '<i>$1</i><s>$2$3$4</s>');
	
	// tags
	s = s.replace(/(&lt;)(\/?)([A-Za-z0-9]+)/g, '$1$2<u>$3</u>');
	// doctype
	s = s.replace(/(&lt;!doctype)([^|]*)(&gt;)/gi, '<span class="HTM_Doc">$1$2$3</span>');
	// xml
	s = s.replace(/(&lt;\?xml)([^|]*)(&gt;)/gi, '<span class="HTM_Xml">$1$2$3</span>');
	
	// commentaires
	s = s.replace(/(&lt;\!\-\-.*?\-\-&gt;)/gi, function(h) { h = CleanTag(h);
																 	  h = h.replace(/\"/g, '&quot;');
																	  h = h.replace(/\'/g, '&#039;');
																	  return '<cite>'+h+'</cite>'; });
	
	return s;
}

/*** Coloration PHP ***/
function ColorPHP(s) {
	
	s = s.replace(/<br \/>/g, '\n');
	s = s.replace(/<\S[^><]*?>/g, '');
	s = s.replace(/\n/g, '<br \/>');
	
	// tag <?, <?php, ?>
	s = s.replace(/(&lt;\?php|&lt;\?|\?&gt;)/g, '<big>$1</big>');
	
	// Boucle, Condition, et autres ...
	s = s.replace(/\b(if|while|for|do|else|endif|endfor|endwhile|endswitch|case|return|break|case|default|echo|print_r|printf|print|exit|die|foreach|throw|try|catch)\b(\s?)/gi, '<small>$1</small>$2');
	
	// du type function truc () , class truc(), var $machin
	s = s.replace(/\b(function|var|class|global|new|static|extends|public|private)\b/g, '<i>$1</i>');
	
	// du type mysql_connect(), fopen() ...
	s = s.replace(/([A-Za-z0-9_]+)([\s]*)(\(|\{)/g, '<u>$1</u>$2$3');
	
	// les variables ( $truc );
	s = s.replace(/(\$[A-Za-z0-9_\-]+)/g, '<var>$1</var>');
	s = s.replace(/\b(this)\b(\-&gt;)/g, '<var>$&1-&gt;</var>');
	
	// les décimaux
	s = s.replace(/(=|\+|\*|\-|\[|\(| |,|;)([\d]+)/g, '$1<sup>$2</sup>');
	
	// Booléen, et caractère divers
	s = s.replace(/\b(false|true|null|and|or|xor|as)\b/g, '<em>$1</em>');
	
	s = s.replace(/(==|\!=|&amp;&amp;|&#124;&#124;|&lt;=|&gt;=|\(|\[|\]|\)|\{|\})/g, '<em>$1</em>');
	
	// Expression régulière
	s = s.replace(/(\(|=)(#|@)(.*?)(#|@)/g, '$1<b>$2$3$4</b>');
	
	// quotes double
	//s = s.replace(/(\s|\[|\(|=|\.|,)(")([^"]*)(")/g, '$1<strike>$2$3$4</strike>');
	s = s.replace(/(")([^"]*)(")/g, '<strike>$1$2$3</strike>');
	// quotes simple
	//s = s.replace(/(\s|\[|\(|=|\.|,)(')([^']*)(')/g, '$1<strike>$2$3$4</strike>');
	s = s.replace(/(')([^']*)(')/g, '<strike>$1$2$3</strike>');
	// Commentaires
	s = s.replace(/(\/\*.*?\*\/)/g, '<cite>$1</cite>');
	s = s.replace(/(\s|<br \/>)(\/\/|#)(.*?)(<br \/>)/g, '$1<cite>$2$3</cite>$4');
	
	return s;
}

function addNumLn(s) {
	
	parent.TagAdd = parent.TagEnd = parent.Class = ''; /** récupère la classe des tags span croisé au passage **/
	parent.NbLn = 0;	/** compteur de ligne **/
	
	Ln = s+'<br />';
	Ln = Ln.replace(/(.*?<br \/>)/g, function(st) {
			
			parent.NbLn++;
			endTag = false;
			
			if (st.match(/<span class="[^"]*?">/)) {
				parent.Class = st.match(/<span class="([^"]*?)">/)[st.match(/<span class="([^"]*?)">/).length-1];
				st = st.replace(/<span class="[^"]*?">/g, '');	/** après récupération de la class, on efface le tag inutile **/
			} else if (st.indexOf('</span>') != -1) {
				parent.Class = 'CODE_HTM';
			} else if (st.indexOf('<cite>') != -1 && st.indexOf('</cite>') == -1) { /** corrige un p'tit bug de commentaire multi-ligne **/
				parent.TagAdd = '<cite>';
				parent.TagEnd = '</cite>';
			} else if (st.indexOf('</cite>') != -1) {	/** met fin au commentaire multi-ligne **/
				endTag = true;	
			}
			
			st = '<tr><td class="CODE_NumLn">'+parent.NbLn+'</td><td class="'+parent.Class+'">'+parent.TagAdd+st+parent.TagEnd+'</td></tr>';
			
			if (endTag) {
				parent.TagAdd = '';
				parent.TagEnd = '';
			}
			
			return st;
			
	});
	Ln = Ln.replace(/<\/span>/g, '');
	return Ln;
}
											
/** Supprime les Tags HTML inutile et/ou en trop **/
function CleanTag(s) {
		Clean = function(st1) {
					st1 = st1.replace(/<br \/>/gi, '\n');
					st1 = st1.replace(/<\S[^><]*?>/gm, '')
					st1 = st1.replace(/\n/gm, '<br />');
					return st1;
		}
		
		s = s.replace(/(<strike>.*?<\/strike>)/gi, function(st) { return '<strike>'+Clean(st)+'</strike>'; } );
		s = s.replace(/(<b>.*?<\/b>)/gi, function(st) { return '<b>'+Clean(st)+'</b>'; } );
		s = s.replace(/(<cite>.*?<\/cite>)/gi, function(st) { return '<cite>'+Clean(st)+'</cite>'; } );

		return s
}

/** Encode les caractères pouvant géner le parseur **/
function RemoveChar(s) {
	Remove = function(St) {
		St = St.replace(/&lt;/g, '&lsaquo;');
		St = St.replace(/&gt;/g, '&rsaquo;');
		return St;
	}
	
	s = s.replace(/&/gm, '&amp;');
	s = s.replace(/\|/gm, '&#124;');
	s = s.replace(/\\\//gm, '\\&#47;');
	s = s.replace(/\\\\/gm, '&#92;&#92;');
	s = s.replace(/\\/gm, '\\');
	s = s.replace(/\\'/gm, '\\&#039;');
	s = s.replace(/\\"/gm, '\\&quot;');
	s = s.replace(/</gm, '&lt;');
	s = s.replace(/>/gm, '&gt;');
	s = s.replace(/\t/gm, '          ');
	s = s.replace(/\r?\n/g, function(t) { parent.NbLn++; return '<br />'; });
	
	s = s.replace(/(\s\/\*.*?\*\/\s)/g, function(st) { st = st.replace(/\'/g, '\\&#039;'); st = st.replace(/\"/g, '\\&quot;'); return Remove(st); });
	s = s.replace(/<br \/>\/\*.*?\*\/<br \/>/g, function(st) { st = st.replace(/\'/g, '\\&#039;'); st = st.replace(/\"/g, '\\&quot;'); return Remove(st); });
	s = s.replace(/(\s\/\/)(.*?<br \/>)/g, function(st) { st = st.replace(/\'/g, '&#039;'); st = st.replace(/\"/g, '&quot;'); return Remove(st); });
	s = s.replace(/(<br \/>\/\/)(.*?<br \/>)/g, function(st) { st = st.replace(/\'/g, '&#039;'); st = st.replace(/\"/g, '&quot;'); return Remove(st); });
	s = s.replace(/([\s=;\:\+\.\(\[,])("[^"]*?")/g, function(st) { st = st.replace(/\'/g, '&#039;'); return Remove(st); });
	s = s.replace(/([\s=;\:\+\.\(\[,])('[^']*?')/g, function(st) { st = st.replace(/\"/g, '&quot;'); return Remove(st); });
	s = s.replace(/(\(\/[^\/]*?\/)/g, function(st) { st = st.replace(/'/g, '&#039;'); st = st.replace(/"/g, '&quot;'); return Remove(st); });
	
	return s;
	
}

/** Décode les caractères nécessaire dernièrement encodé **/
function ReplaceChar(s) {
	Replace = function(St) {
		St = St.replace(/&lsaquo;/g, '&lt;');
		St = St.replace(/&rsaquo;/g, '&gt;');
		St = St.replace(/&quot;/g, '"');
		St = St.replace(/&#039;/g, "'");
		St = St.replace(/  /g, "&nbsp;&nbsp;");
		St = St.replace(/> /g, ">&nbsp;");
		return St;
	}
	
	return Replace(s);
	
}

 Conclusion

Coloration Javascript => - Certaines Expressions régulières ne sont pas coloré
                         - <script type="text/javascript">un paquet de code js
                           sans nouvelle ligne</script> ne sont pas coloré ou
                           très mal.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 octobre 2006 17:18:03 :
Coloration JavasCript => certaine ligne n'était pas coloré ...
14 octobre 2006 17:22:37 :
Ajout => - Selection du type de coloration (tous, ou seulement l'un d'entre eux) - Quelque commentaire en plus J'ai aussi dissocié le code javascript du code html
21 octobre 2006 01:46:10 :
Optimisation du Code => suppression des boucles
23 octobre 2006 00:54:59 :
"Ré"-ajout de la numérotation des lignes

 Sources du même auteur

Source avec Zip EDITEUR BBCODE AVEC VISUALISATION EN DIRECT

 Sources de la même categorie

Source avec Zip Source avec une capture BOITE DE DIALOGUE MODALE DE SÉLECTION D'UNE LISTE D'ICONES par JJDai
Source avec Zip Source avec une capture RÉSOLUTION D'UN SYSTÈME D'ÉQUATIONS LINÉAIRES À N INCONNUES par william voirol
Source avec Zip Source avec une capture PLUGIN JQUERY LISTE MODIFIABLE (COMBO) AUTOCOMPLÉTÉE par medkarim
GESTION DE NUMÉRO DE TÉLÉPHONE SIMPLE DANS FIREFOX7 par rotomtom
Source avec Zip Source avec une capture RECOMMANDER CETTE PAGE AVEC MAILTO, ACCENT ET RETOUR LIGNE D... par weabow

 Sources en rapport avec celle ci

Source avec une capture PRÉSENTOIR PAGE/SUJET par tiranus
Source avec Zip QUIZ HTML CSS ET JAVASCRIPT par lecurieux41
Source avec Zip Source avec une capture INTERNET DESKTOP par TomReagan
EXPORTATION DES TABLEAUS VERS EXCEL par isecso
Source avec Zip Source avec une capture PHP ET JAVASCRIPT : AFFICHER UNE HORLOGE BASÉE SUR L'HEURE D... par darkweaver87

Commentaires et avis

Commentaire de JJDai le 14/10/2006 10:52:51

Je chechais justement un truc du genre, je regarde ça.

Commentaire de Vince_02 le 14/10/2006 14:25:06

Oki, et dis moi ce que tu en penses ;)

Je vais inclure un zip et une URL pour le tester plus facilement.
Je vais aussi ajouté un peux plus de commentaire, mis a part moi,
on ne sait pas a quoi corresponde les fonctions ni a quoi ça sert
et de ce qu'ils font ...

Commentaire de Vince_02 le 15/10/2006 03:02:23

erf pas tellement de commentaire ....
bref pas grave ^^'

Pour ceux qui pourrait être intéressé, en surfant sur le web,
je suis tombé sur un Wysiwyg plutot intéressant ^^

ça reste dans le thème "Coloration Syntaxique" mais via un wysiwyg,
en temps réelle et sans passer par un serveur quelconque ( Ajax/XMLHttpRequest )

C'est rapide, et ça change de mon "usine a gaz" XD

Jetter un oeil la dessus ^^
=> http://codepress.fermads.net/

Commentaire de Bidou le 01/11/2006 07:56:50 administrateur CS

Ca serait pas mal de faire un ou deux retour à la ligne histoire que le code s'affiche correctement ;-)

Commentaire de Vince_02 le 01/11/2006 13:04:04

Salut Bidou, j'ai modifier un peux le système de numérotation de ligne, en utilisant les balises html OL et LI
Pour le retour à la ligne, je pense que via le CSS ça pourrait être mieux géré, mais bon si la ligne de code
fait plus de 300 caractères, sans espaces, le problème sera toujours présent.

Je metterais a jour la source dés que possible ;)

Commentaire de webdeb le 15/04/2007 18:04:30

10/10 pour ma part ;)

Commentaire de JJDai le 04/07/2011 23:54:05 10/10

Bonjour
entre temps je suis passé sur un autre chose, mais il n'est jamais trop tard pour bien faire (même 5 ans après !!!).
Bref impeccable, c'est juste ce qu'il me faut avec quelques adaptations style un script qui balaye l'ensemble du document et effectue une conversion automatique, en conservant peut être la version original dans un div caché.
JJDAI

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

programeur javascript,php,html [ par flolag ] si il ya des webmasters qui aurait creer ou qui voudrai proposez des scripts jaascript,php pour mon site sont les bienvenues.Aler sur mon site et dans fonction ereg() comme en php [ par eax ] salut!je suis débutant en javascriptje cherche une fonction en javascript qui fonctionne comme la fonction ereg() en phpsi qqun connait un tutorial po Recuperer le SId avec javascript [ par nikos283 ] SalutJ'ai une petit proble, voila j'ai une page php qui crée une session et j'aimerai avec javascript recupérer le nom et valeur de cette session. pou php et javascript [ par overider ] salutje voudrais combiner un code javascript (obtenu avec 132menu téléchargeable en freeware sur www.telecharger.com) avec des donnés issus d'une requ Du php dans un script javascript. Est ce possible? [ par bouchardg ] Bonjour,Est ce qu'il est possible d'incorporer du php dans un script javascript?Par exemple: j'aimerai faire un menu javascript pour des films, et je JAVASCRIPT - PHP [ par iomega ] Bonjour à tous je voudrai savoir si c'est possible de récuper une variable PHP et y insérer dans un script Javascript Exemple $nom = ma variable PHP & Javascript et PHP [ par iomega ] Bonjour à tous voici mon ptit problème.j'ai une variable PHP $passeSignature qui me crypte le champ $txtSignature.Ce que je veux faire, c'est dans mon php et javascript dans une boite confirm [ par alexjet ] bonjour à tous, J'aimerai recupérer dans une variable php une variable javascript, voici mon script : ---------------------- function confirm($msg) { JavaScript utilisée dans PHP [ par Chinatraveler ] BonjourDans une même page *.php mêlant PHP et javascript, je souhaite utiliser l'objet "document.referrer" dans une condition "if" PHP.Est-ce possible Passage de variable javascript vers php [ par zakuli ] Bonjour,Débutant Javascript, j'aimerai savoir s'il éxiste un moyen simple de passer une variable (issue d'une fonction javascript) à un script php.Exe


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,089 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales