Mvc validation regular expression only numbers?

2019-03-26 13:56发布

问题:

I tried the following code for digits-only validation for a contact number validation in Mvc web app.

[RegularExpression(@"/(^\(\d{10})?)$/", ErrorMessage = "Please enter proper contact details.")]
[Required]
[Display(Name = "Contact No")]
public string ContactNo { get; set; }

But the validation expression is not working.

For the contact number I want to only accept digits. It can be either a 10 digit mobile number or a land-line number.

回答1:

/ / is javascript way to build a regular expression literal object. In .NET you should not use it.

Try the following:

@"^\((\d{10}?)\)$"

or if you want exactly 10 digits:

@"^(\d{10})$"


回答2:

If don't have any restrictions other than numbers only, this should fit:

[RegularExpression(@"^\d+$", ErrorMessage = "Please enter proper contact details.")]
[Required]
[Display(Name = "Contact No")]
public string ContactNo { get; set; }


回答3:

This worked for me:

[RegularExpression(@"^[0-9]{10}", ErrorMessage = "Please enter proper contact details.")]