Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/***
*Regular expressions 
*Author: ThomasV, Pathoschild
*Note : this tool uses the javascript syntax: use $ (and not \) to call a group
****/

/* create form */
function custom() {
 
	/* if already open */
	if(document.getElementById('regexform')) customremove()
	else {	
               var editbox = document.getElementById('wpTextbox1');
		/* container */
		var regexform = document.createElement('div');
		regexform.setAttribute('id','regexform');
		editbox.parentNode.insertBefore(regexform,editbox.parentNode.firstChild);
 		/* form tag */
		var formform = document.createElement('form');
		formform.setAttribute('id','regexformform');
		//formform.setAttribute('onSubmit','customgo(); return false;');
		regexform.appendChild(formform);

		// add input boxes
	        var newinput = document.createElement('input');
	        newinput.setAttribute('id','formsearch');
	        var newlabel = document.createElement('label');
	        newlabel.setAttribute('for','formsearch');
		newlabel.appendChild(document.createTextNode("Repl. "));

		formform.appendChild(newlabel);
		formform.appendChild(newinput);

		var newinput = document.createElement('input');
		newinput.setAttribute('id','formreplace');
		var newlabel = document.createElement('label');
		newlabel.setAttribute('for','formreplace');
		newlabel.appendChild(document.createTextNode(' par '));

		formform.appendChild(newlabel);
		formform.appendChild(newinput);

		// go! link
		var go_button = document.createElement('input');
		go_button.setAttribute('type',"button");
		go_button.setAttribute('onclick',"customgo();");
		go_button.setAttribute('title',"go!");
		go_button.setAttribute('value',"go!");
		formform.appendChild(go_button);

	}
}
 
 
 
/* run patterns */
function customgo() {
	/* get search and replace strings */

        var msearch = document.getElementById('formsearch').value;
	msearch = msearch.replace(/\\n/g, '\n');
 
        var mreplace = document.getElementById('formreplace').value;
	mreplace = mreplace.replace(/\\n/g, '\n');
 
	/* convert input to regex */
 
	// without delimiters
	if(!msearch.match(/^\s*\/[\s\S]*\/[a-z]*\s*$/i)) {
		var search_re = new RegExp(msearch,'g');
	}
	// with delimiters
	else {
		// break into parts
		var regpattern = msearch.replace(/^\s*\/([\s\S]*)\/[a-z]*\s*$/i,'$1');
		var regmodifiers = msearch.replace(/^\s*\/[\s\S]*\/([a-z]*)\s*$/,'$1');
		// filter invalid flags
		regmodifiers = regmodifiers.replace(/[^gim]/ig,'');
		var search_re = new RegExp(regpattern, regmodifiers);
	}
 
	/* perform */
	var editbox = document.getElementById('wpTextbox1');
	editbox.value = editbox.value.replace(search_re,mreplace);
}
 
/* remove form */
function customremove() {
	var regexform = document.getElementById('regexform');
	regexform.parentNode.removeChild(regexform);
	patterncount = -1;
}
 
function add_regexp_button(){
	var toolbar = document.getElementById("toolbar");
	if(toolbar){
		var image = document.createElement("img");
		image.width = 23;
		image.height = 22;
		image.border = 0;
		image.className = "mw-toolbar-editbutton";
		image.style.cursor = "pointer";
		image.alt = "regexp";
		image.title = "Expression régulière";
		image.src = "//upload.wikimedia.org/wikipedia/commons/a/a0/Button_references_alt.png";
		image.onclick = custom;
		toolbar.appendChild(image);
	}
}
$(add_regexp_button)