Ho un'espressione regolare che sto cercando di capire per un modello di convalida di annotazione dati .NET che sto utilizzando. Attualmente sembra che questoregex .NET specifico per .net C# dataannotations
[RegularExpression("^((?!City)[a-zA-Z '])+$", ErrorMessage = "City is required and must be properly formatted.")]
La prima metà di questa regex è quello di tenere conto di Città, la seconda metà è quello di assicurarsi che i suoi solo lettere e spazi.
Il valore predefinito per la casella di testo di input è Città, quindi solo "Città" non può superare la convalida. Non riesco a ottenere la prima sezione di questa regex per far passare questi casi.
Cityville
City City
Jersey City
Arizona City
Ma questo caso non passa:
City
Qualsiasi aiuto sarebbe molto apprezzato.
* EDIT * Questo ha fatto il trucco:
^(?! (^ Città $) [a-zA-Z ']) + $
ho aggiornato tutti la mia convalida per includere questo. Nel caso volessi vedere cosa sto facendo. Qui se il codice per l'intero modello di dati di validazione che sto usando. (aggiornato con la regex corretta)
public class FormModel {
[Required(ErrorMessage = "First Name is a Required field.")]
[DataType(DataType.Text)]
[Display(Order = 1, Name = "FirstName")]
[RegularExpression("^((?!^First Name$)[a-zA-Z '])+$", ErrorMessage = "First name is required and must be properly formatted.")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name is a Required field.")]
[DataType(DataType.Text)]
[Display(Order = 2, Name = "LastName")]
[RegularExpression("^((?!^Last Name$)[a-zA-Z '])+$", ErrorMessage = "Last name is required and must be properly formatted.")]
public string LastName { get; set; }
[Required(ErrorMessage = "Address is a Required field.")]
[DataType(DataType.Text)]
[Display(Order = 3, Name = "Address")]
[RegularExpression("^((?!^Address$)[0-9A-Za-z #.,])+$", ErrorMessage = "Address is required and must be properly formatted.")]
public string Address { get; set; }
[DataType(DataType.Text)]
[Display(Order = 4, Name = "Address2")]
public string Address2 { get; set; }
[Required(ErrorMessage = "City is a Required field.")]
[DataType(DataType.Text)]
[RegularExpression("^((?!^City$)[a-zA-Z '])+$", ErrorMessage = "City is required and must be properly formatted.")]
[Display(Order = 6, Name = "City")]
public string City { get; set; }
[Required(ErrorMessage = "State is a Required field.")]
[DataType(DataType.Text)]
[Display(Order = 7, Name = "State")]
public IEnumerable<String> State { get; set; }
[Required(ErrorMessage = "Zip is a Required field.")]
[DataType(DataType.Text)]
[RegularExpression("\\d{5}",
ErrorMessage = "Zip Code is required and must be properly formatted.")]
[Display(Order = 8, Name = "Zip")]
public String Zip { get; set; }
[Required(ErrorMessage = "Phone is a Required field.")]
[DataType(DataType.PhoneNumber)]
[RegularExpression("^[01]?[- .]?\\(?[2-9]\\d{2}\\)?[- .]?\\d{3}[- .]?\\d{4}$",
ErrorMessage = "Phone is required and must be properly formatted.")]
[Display(Order = 9, Name = "Phone")]
public string Phone { get; set; }
[Required(ErrorMessage = "Email is a Required field.")]
[DataType(DataType.EmailAddress)]
[RegularExpression("^[A-Za-z0-9._%+-]*@[A-Za-z0-9.-]*\\.[A-Za-z0-9-]{2,}$",
ErrorMessage = "Email is required and must be properly formatted.")]
[Display(Order = 10, Name = "Email")]
public string Email { get; set; }
Questo ha fatto il trucco! Grazie –
@ChrisLimina Si dovrebbe contrassegnare questo come la risposta accettata se risolvesse il problema. – melwil