public IActionResult Agregar(CategoriaViewModel categoria_VM) { if (ModelState.IsValid) { try { CategoriasRepository categoriasRepository = new CategoriasRepository(); var categoriaResult = categoriasRepository.GetCategoriaByNombre(categoria_VM.Nombre.ToLower()); //Regex regex = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s 0-9 ]+$"); Regex regex = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s ]+$"); bool resultado = true; resultado = regex.IsMatch(categoria_VM.Nombre); if (!resultado) { ModelState.AddModelError("", "No se aceptan números y caracteres especiales en el nombre (Solo: a-z, A-Z)."); return(View(categoria_VM)); } Regex regexNoNumStart = new Regex(@"[0-9]| $"); bool resultadoNoNumStart = false; string textoFirstChart = categoria_VM.Nombre.Substring(0, 1); resultadoNoNumStart = regexNoNumStart.IsMatch(textoFirstChart); if (resultadoNoNumStart) { ModelState.AddModelError("", "No se permite iniciar con NÚMERO o con ESPACIO."); return(View(categoria_VM)); } if (categoriaResult == null) { categoriasRepository.InsertCategoriaVM(categoria_VM); return(RedirectToAction("Categoria", "Administrador")); } else { ModelState.AddModelError("", "Ya existe una categoría con el mismo nombre."); return(View(categoria_VM)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(categoria_VM)); } } else { return(View(categoria_VM)); } }