diff --git a/Program.cs b/Program.cs index e45c9ea..19b970e 100644 --- a/Program.cs +++ b/Program.cs @@ -1,4 +1,5 @@ -namespace Rubrica_Miglioria; +using System.Text.RegularExpressions; +namespace Rubrica_Miglioria; class Program { static void Main(string[] args) { @@ -38,7 +39,7 @@ class Program { nome = Console.ReadLine().ToLower(); nomi[contatore] = nome; tipologia = "nome"; - check2 = VerificaCorrettezza(nome, tipologia); + check2 = VerificaCorrettezza(nome, true); check3 = VerificaDoppione(nome, nomi, contatore); if (nome.Length > 40) { Console.WriteLine("il nome non può essere lungo più di 40 caratteri"); @@ -58,7 +59,7 @@ class Program { numeroditelefono = numeroditelefono.ToLower(); numeriditelefono[contatore] = numeroditelefono; tipologia = "numero di telefono"; - check2 = VerificaCorrettezza(numeroditelefono, tipologia); + check2 = VerificaCorrettezza(numeroditelefono, false); check3 = VerificaDoppione(numeroditelefono, numeriditelefono, contatore); if (numeroditelefono.Length > 20) { Console.WriteLine("il numero di telefono non può essere lungo più di 20 caratteri"); @@ -89,7 +90,7 @@ class Program { nomeesatto = Console.ReadLine(); nomeesatto = nomeesatto.ToLower(); tipologia = "nome"; - check2 = VerificaCorrettezza(nome, tipologia); + check2 = VerificaCorrettezza(nome, true); if (nomeesatto.Length > 40) { Console.WriteLine("il nome non può essere lungo più di 40 caratteri"); } @@ -113,7 +114,7 @@ class Program { nomeapprossimato = Console.ReadLine(); nomeapprossimato = nomeapprossimato.ToLower(); tipologia = "nome"; - check2 = VerificaCorrettezza(nome, tipologia); + check2 = VerificaCorrettezza(nome, true); if (nomeapprossimato.Length > 40) { Console.WriteLine("il nome non può essere lungo più di 40 caratteri"); } @@ -155,25 +156,16 @@ class Program { } return check; } - static bool VerificaCorrettezza(string p_stringa, string p_tipologia) { - bool check = false; - string corretezzanome = "1234567890"; - string corretezzanumeroditelefono = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàèéìòùÀÈÉÌÒÙáéíóúÁÉÍÓÚâêîôûÂÊÎÔÛäëïöüÄËÏÖÜãõñÃÕÑçÇß¡¿€£¥¢¤!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ \r\n"; - if (p_tipologia == "nome") { - for (int i = 0; i < p_stringa.Length; i++) { - if (corretezzanome.Contains(p_stringa[i])) { - check = true; - break; - } - } + static bool VerificaCorrettezza(string p_stringa, bool p_tipologia) { + bool check; + const string NOME = "[1-9]+"; + const string TELEFONO = "^(?:\\(?\\+?\\d{1,3}\\)?|\\(?00\\d{1,3}\\)?)?[\\s-]?\\d{3}[\\s-]\\d{3}[\\s-]\\d{4}$"; + + if (p_tipologia) { + check = Regex.IsMatch(p_stringa, NOME); } - if (p_tipologia == "numero di telefono") { - for (int i = 0; i < p_stringa.Length; i++) { - if (corretezzanumeroditelefono.Contains(p_stringa[i])) { - check = true; - break; - } - } + else { + check = Regex.IsMatch(p_stringa, TELEFONO); } return check; } diff --git a/bin/Debug/net9.0/Rubrica_Miglioria.dll b/bin/Debug/net9.0/Rubrica_Miglioria.dll index 982b873..31c7c25 100644 Binary files a/bin/Debug/net9.0/Rubrica_Miglioria.dll and b/bin/Debug/net9.0/Rubrica_Miglioria.dll differ diff --git a/bin/Debug/net9.0/Rubrica_Miglioria.pdb b/bin/Debug/net9.0/Rubrica_Miglioria.pdb index 9d379a2..f5f259c 100644 Binary files a/bin/Debug/net9.0/Rubrica_Miglioria.pdb and b/bin/Debug/net9.0/Rubrica_Miglioria.pdb differ diff --git a/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfo.cs b/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfo.cs index 2eda683..ae58ef4 100644 --- a/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfo.cs +++ b/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfo.cs @@ -13,10 +13,10 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Rubrica_Miglioria")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7a8c35dc14d3f94742b1739914f0c1734fbd4634")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ba18d30b825f878ff4872e9e8bcafee9285e8619")] [assembly: System.Reflection.AssemblyProductAttribute("Rubrica_Miglioria")] [assembly: System.Reflection.AssemblyTitleAttribute("Rubrica_Miglioria")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -// Generated by the MSBuild WriteCodeFragment class. +// Generato dalla classe WriteCodeFragment di MSBuild. diff --git a/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfoInputs.cache b/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfoInputs.cache index ab588cb..b78bb3c 100644 --- a/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/Rubrica_Miglioria.AssemblyInfoInputs.cache @@ -1 +1 @@ -08edd7693ed88a88b67a3d844ce1f743c8ffacd35a9ff767cd5bae496a22411b +b72f6dc1501f598d95d1122abf7006264048d3ea8fe9bd9bdb8a9100a2c2bfb0 diff --git a/obj/Debug/net9.0/Rubrica_Miglioria.dll b/obj/Debug/net9.0/Rubrica_Miglioria.dll index 982b873..31c7c25 100644 Binary files a/obj/Debug/net9.0/Rubrica_Miglioria.dll and b/obj/Debug/net9.0/Rubrica_Miglioria.dll differ diff --git a/obj/Debug/net9.0/Rubrica_Miglioria.pdb b/obj/Debug/net9.0/Rubrica_Miglioria.pdb index 9d379a2..f5f259c 100644 Binary files a/obj/Debug/net9.0/Rubrica_Miglioria.pdb and b/obj/Debug/net9.0/Rubrica_Miglioria.pdb differ diff --git a/obj/Debug/net9.0/ref/Rubrica_Miglioria.dll b/obj/Debug/net9.0/ref/Rubrica_Miglioria.dll index 5cff0c0..5c4138f 100644 Binary files a/obj/Debug/net9.0/ref/Rubrica_Miglioria.dll and b/obj/Debug/net9.0/ref/Rubrica_Miglioria.dll differ diff --git a/obj/Debug/net9.0/refint/Rubrica_Miglioria.dll b/obj/Debug/net9.0/refint/Rubrica_Miglioria.dll index 5cff0c0..5c4138f 100644 Binary files a/obj/Debug/net9.0/refint/Rubrica_Miglioria.dll and b/obj/Debug/net9.0/refint/Rubrica_Miglioria.dll differ