Utente:Alex brollo/NextRegex.js

Da Wikisource.

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
// funzione test
function trovaSucc() {
	//console.log($('#findReplace_find').val());
	var trova = $('#findReplace_find').val();
	//var sostituisci = $('#findReplace_replace').val()
	//	.replace(/\\n/g, '\n').replace(/\\t/g, '\t'); //abilita \n e \t come caratteri speciali newline e tab
	//var commento=$('#findReplace_doc').val();	
	var isRegex = $('#findReplace_regex').is(':checked');
	var isMaiusc = $('#findReplace_maiusc').is(':checked');
	var isMultiriga = $('#findReplace_multiriga').is(':checked');
	var isRicorda = $('#findReplace_ricorda').is(':checked');
	var regexParams = '';
	if (!isRegex) {
		//escape dei caratteri speciali delle regex
		trova = trova.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
	}
	if (isMaiusc) {
		regexParams += 'i';
	}
	if (isMultiriga) {
		regexParams += 'm';
	}
	// lancia la routine vis1
	var regex = new RegExp(trova, regexParams);
	console.log(regex);
	//var elemento = document.getElementsByName('wpTextbox1')[0]; 
	//vis1(elemento, regex);
	vis1(regex)
	return false;
}


// riceve un elemento e seleziona il primo math della regex r
function vis(el,r) {
// el è un elemento textarea di document
// r è una regex
// var editbox=document.getElementsByName('wpTextbox1')[0]; 
	var testo=el.value; 
	var s=r.exec(testo); 
	el.selectionStart=s.index; 
	el.selectionEnd=el.selectionStart+s[0].length;
	return false;
}
// riceve un elemento e seleziona il primo math della regex r successivo alla selezione; poi ricomincia .
// La finesrea scrolla sul risultato. 
function vis1(r) {
// el è un elemento textarea di document
// r è una regex
	var el=document.getElementsByName('wpTextbox1')[0]; 
	var selectionEnd, s;
    if (r.exec(el.value)===null) {console.log("nessun risultato"); return false;}
    selectionEnd=el.selectionEnd;
	s=r.exec(el.value.substring(selectionEnd)); 
    if (s===null) {
        console.log("ricomincio dall'inizio"); 
        el.selectionStart=0;
        el.selectionEnd=0;
        selectionEnd=0;
        s=r.exec(el.value.substring(selectionEnd)); 
    }
    
	el.selectionStart=selectionEnd+s.index; 
    el.selectionEnd=el.selectionStart;
    el.blur();
    el.focus();
	el.selectionEnd=el.selectionStart+s[0].length;
	return false;
}