function myreplace(originalString,searchText,replaceText) { var strLength = originalString.length; var txtLength = searchText.length; if ((strLength == 0) || (txtLength == 0)) { return originalString; } var i = originalString.indexOf(searchText); if ((!i) && (searchText != originalString.substring(0,txtLength))) { return originalString; } if (i == -1) { return originalString; } var newstr = originalString.substring(0,i) + replaceText; if (i+txtLength < strLength) { newstr += myreplace(originalString.substring(i+txtLength,strLength),searchText,replaceText); } return newstr; } function trim_js(stringa) { if (stringa==null) return (""); return stringa.replace(/^\s*|\s*$/g,""); } function purge_js(stringa) { var i; //toglie gli spazi all'interno for (i = 0; i < stringa.length - 1; i++) if (stringa.charAt(i) == ' ') stringa = stringa.substr(0, i) + stringa.substr(i + 1); return(stringa); } // Controlla che la stringa non contenga numeri function NessunNumero(stringa) { if (stringa.indexOf('1') != -1 || stringa.indexOf('2') != -1 || stringa.indexOf('3') != -1 || stringa.indexOf('4') != -1 || stringa.indexOf('5') != -1 || stringa.indexOf('6') != -1 || stringa.indexOf('7') != -1 || stringa.indexOf('8') != -1 || stringa.indexOf('9') != -1 || stringa.indexOf('0') != -1 ) return false; return true; } // Controlla che la stringa contenga solo numeri function SoloNumeri(stringa) { var i; for (i = 0; i < stringa.length; i++) if (stringa.charAt(i) != '1' && stringa.charAt(i) != '2' && stringa.charAt(i) != '3' && stringa.charAt(i) != '4' && stringa.charAt(i) != '5' && stringa.charAt(i) != '6' && stringa.charAt(i) != '7' && stringa.charAt(i) != '8' && stringa.charAt(i) != '9' && stringa.charAt(i) != '0') return false; return true; } // Controlla l'indirizzo e-mail function EmailValida(stringa) { // sono supportate le espressioni regolari? var supported = false; if (window.RegExp) { var tempStr = "b"; var tempReg = new RegExp(tempStr); supported = tempReg.test(tempStr); } if (!supported) return (stringa.indexOf(".") > 0) && (stringa.indexOf("@") > 0); var r1 = new RegExp("(@.*@)|(\\.{2,})|(@\\.)|(\\.@)|(^\\.)|('+)"); var r2 = new RegExp("^.+@[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4})$"); return !r1.test(stringa) && r2.test(stringa); } // Controlla se la stringa contiene spazi function ContieneSpazi(stringa) { var i; for (i = 0; i < stringa.length; i++) if (stringa.charAt(i) == ' ') return true; return false; } function ControllaCodiceFiscale(CodiceFiscale) { // Controllo del cognome if (!(IsConsonante(CodiceFiscale.charAt(0)) && IsConsonante(CodiceFiscale.charAt(1)) && IsConsonante(CodiceFiscale.charAt(2)) || IsConsonante(CodiceFiscale.charAt(0)) && IsConsonante(CodiceFiscale.charAt(1)) && IsVocale(CodiceFiscale.charAt(2)) || IsConsonante(CodiceFiscale.charAt(0)) && IsVocale(CodiceFiscale.charAt(1)) && IsVocale(CodiceFiscale.charAt(2)) || IsConsonante(CodiceFiscale.charAt(0)) && IsVocale(CodiceFiscale.charAt(1)) && CodiceFiscale.charAt(2) == 'X' || IsVocale(CodiceFiscale.charAt(0)) && IsVocale(CodiceFiscale.charAt(1)) && CodiceFiscale.charAt(2) == 'X' || // MAC 111171A - a.castriotta devo accettare anche cognomi di sole vocali IsVocale(CodiceFiscale.charAt(0)) && IsVocale(CodiceFiscale.charAt(1)) && IsVocale(CodiceFiscale.charAt(2)))) { alert("Il codice fiscale contiene un cognome errato!"); return false; } // Controllo del nome if (!(IsConsonante(CodiceFiscale.charAt(3)) && IsConsonante(CodiceFiscale.charAt(4)) && IsConsonante(CodiceFiscale.charAt(5)) || IsConsonante(CodiceFiscale.charAt(3)) && IsConsonante(CodiceFiscale.charAt(4)) && IsVocale(CodiceFiscale.charAt(5)) || IsConsonante(CodiceFiscale.charAt(3)) && IsVocale(CodiceFiscale.charAt(4)) && IsVocale(CodiceFiscale.charAt(5)) || IsConsonante(CodiceFiscale.charAt(3)) && IsVocale(CodiceFiscale.charAt(4)) && CodiceFiscale.charAt(5) == 'X' || IsVocale(CodiceFiscale.charAt(3)) && IsVocale(CodiceFiscale.charAt(4)) && CodiceFiscale.charAt(5) == 'X')) { alert("Il codice fiscale contiene un nome errato!"); return false; } // Controllo dell'anno della data di nascita if (isNaN(parseInt(CodiceFiscale.charAt(6),10)) || isNaN(parseInt(CodiceFiscale.charAt(7),10))) { alert("Il codice fiscale contiene un anno di nascita errato!"); return false; } // Controllo dela lettera del mese della data di nascita if (!IsLetteraMese(CodiceFiscale.charAt(8))) { alert("Il codice fiscale contiene un mese di nascita errato!"); return false; } // Controllo dei giorni della data di nascita if (isNaN(parseInt(CodiceFiscale.charAt(9),10)) || isNaN(parseInt(CodiceFiscale.charAt(10),10)) || !(parseInt(CodiceFiscale.substr(9, 2),10) > 0 && parseInt(CodiceFiscale.substr(9, 2),10) <= 31 || parseInt(CodiceFiscale.substr(9, 2),10) > 40 && parseInt(CodiceFiscale.substr(9, 2),10) <= 71)) { alert("Il codice fiscale contiene un giorno di nascita errato!"); return false; } // Calcolo dell'ultima lettera var i, SommaPari = 0; for(i = 0; i < CodiceFiscale.length - 1; i += 2) { SommaPari += PesiPari(CodiceFiscale.charAt(i)); } var SommaDispari = 0; for(i = 1; i < CodiceFiscale.length - 1; i += 2) { SommaDispari += PesiDispari(CodiceFiscale.charAt(i)); } if (!(UltimaLettera((SommaPari + SommaDispari) % 26) == CodiceFiscale.charAt(15))) { alert("Il carattere di controllo del codice fiscale è errato!"); return false; } return true; } function ControllaPartitaIVA(PartitaIVA) { var i, Cont, ContaPari, ContaDispari, Somma, UltimaCifra; if (PartitaIVA.substr(0, 10) == "0000000000") //non deve esistere una partita iva con i primi 10 caratteri a zero return false; //conteggio dei pari ContaPari = 0; for (i = 1; i <= 9; i += 2) { Cont = parseInt(PartitaIVA.charAt(i),10) * 2 if (Cont < 10) ContaPari += Cont; else ContaPari += Math.floor(Cont / 10) + (Cont - (Math.floor(Cont / 10) * 10)); //scomposizione in parte intera e decimale } //conteggio dei dispari ContaDispari = 0; for (i = 0; i <= 8; i += 2) ContaDispari += parseInt(PartitaIVA.charAt(i),10); //somma totale Somma = ContaPari + ContaDispari; UltimaCifra = Somma - (Math.floor(Somma / 10) * 10); if (UltimaCifra == 0) { if (parseInt(PartitaIVA.charAt(10),10) != UltimaCifra) return false; } else { if (parseInt(PartitaIVA.charAt(10),10) != 10 - UltimaCifra) return false; } return true; } function IsConsonante(lettera) { switch (lettera) { case 'B': case 'C': case 'D': case 'F': case 'G': case 'H': case 'J': case 'K': case 'L': case 'M': case 'N': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Y': case 'Z': return true; default: return false; } } function IsVocale(lettera) { switch (lettera) { case 'A': case 'E': case 'I': case 'O': case 'U': return true; default: return false; } } function IsLetteraMese(mese) { switch (mese) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'H': case 'L': case 'M': case 'P': case 'R': case 'S': case 'T': return true; default: return false; } } function PesiDispari(temp) { switch (temp) { case 'A': return 0; case 'B': return 1; case 'C': return 2; case 'D': return 3; case 'E': return 4; case 'F': return 5; case 'G': return 6; case 'H': return 7; case 'I': return 8; case 'J': return 9; case 'K': return 10; case 'L': return 11; case 'M': return 12; case 'N': return 13; case 'O': return 14; case 'P': return 15; case 'Q': return 16; case 'R': return 17; case 'S': return 18; case 'T': return 19; case 'U': return 20; case 'V': return 21; case 'W': return 22; case 'X': return 23; case 'Y': return 24; case 'Z': return 25; case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; } } function PesiPari(temp) { switch (temp) { case 'A': return 1; case 'B': return 0; case 'C': return 5; case 'D': return 7; case 'E': return 9; case 'F': return 13; case 'G': return 15; case 'H': return 17; case 'I': return 19; case 'J': return 21; case 'K': return 2; case 'L': return 4; case 'M': return 18; case 'N': return 20; case 'O': return 11; case 'P': return 3; case 'Q': return 6; case 'R': return 8; case 'S': return 12; case 'T': return 14; case 'U': return 16; case 'V': return 10; case 'W': return 22; case 'X': return 25; case 'Y': return 24; case 'Z': return 23; case '0': return 1; case '1': return 0; case '2': return 5; case '3': return 7; case '4': return 9; case '5': return 13; case '6': return 15; case '7': return 17; case '8': return 19; case '9': return 21; } } function UltimaLettera(lettera) { switch (lettera) { case 0: return 'A'; case 1: return 'B'; case 2: return 'C'; case 3: return 'D'; case 4: return 'E'; case 5: return 'F'; case 6: return 'G'; case 7: return 'H'; case 8: return 'I'; case 9: return 'J'; case 10: return 'K'; case 11: return 'L'; case 12: return 'M'; case 13: return 'N'; case 14: return 'O'; case 15: return 'P'; case 16: return 'Q'; case 17: return 'R'; case 18: return 'S'; case 19: return 'T'; case 20: return 'U'; case 21: return 'V'; case 22: return 'W'; case 23: return 'X'; case 24: return 'Y'; case 25: return 'Z'; } }