Utente:Alex brollo/NextRegex.js
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;
}