2012-05-18 11 views
9

¿Cómo puedo escribir la validación utilizando una anotación de datos al escribir un número de teléfono como "094-4567" o un número de teléfono móvil como "09129705678", etc.?Anotación de datos de ASP.NET MVC 3 para teléfonos móviles y números de teléfono (editados)

using System.Web; 
using System.Data.Entity; 
using System.ComponentModel.DataAnnotations; 

namespace PhoneBook.Models 
{ 
    public class Contact 
    { 
     [Required(ErrorMessage="Telephone Number Required") 
     [?] 
     public string Telephone Number {get; set;} 
    } 
} 

Realmente no sé qué hacer ...

+0

¿Está aceptando sólo los números de teléfono de Estados Unidos? ¿Permiten extensiones como 123-456-7890 x1234? ¿Qué hay de alguien en los EE. UU. Que usa un teléfono celular mexicano e ingresa el número que marcaría para llegar desde EE. UU. Como 52-1-625-1140504? – nvuono

Respuesta

35

Puede utilizar expresiones regulares atribuyen este modo:

namespace PhoneBook.Models 
{ 
    public class Contact 
    { 
     [Required(ErrorMessage="Telephone Number Required") 
     [RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Entered phone format is not valid.")] 
     public string Telephone Number {get; set;} 
    } 
} 

que coincidirá con números como: , 012- 345-6789, (012) -345-6789 etc.

Puede obtener más información sobre esta frase aquí: How to use Regular expression for validating Phone Numbers

+1

Use @ "^ \ (? ([0-9] {3}) \)? [-.]? ([0-9] {3}) [-.]? ([0-9] {4}). * $ "en vez de permitir que las extensiones sean añadidas al final. –

-3
namespace PhoneBook.Models 
{ 
    public class Contact 
    { 
     [Required(ErrorMessage="Telephone Number Required") 
     [RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Entered phone format is not valid.")] 
     public string Telephone Number {get; set;} 
    } 
} 
2

Prueba esto:

[DataType(DataType.PhoneNumber, ErrorMessage = "Provided phone number not valid")] 
0
Try for simple regular expression for Mobile No 

    [Required (ErrorMessage="Required")] 
    [RegularExpression(@"^(\d{10})$", ErrorMessage = "Wrong mobile")] 
    public string Mobile { get; set; } 
Cuestiones relacionadas