2011-06-13 4 views
5

전화 번호의 유효성을 검사하기 위해 정규식 (ASP .NET 웹 사이트에서 사용)이 필요합니다. 유연한 있어야 유일한 제한 사항은 다음과 같습니다'일반'전화 번호에 대한 기본 정규식

  • 적어도 9 자리 여야합니다
  • 없이 영문자
  • 는 공백, 하이픈, 하나의 (+)

I를 포함 할 수 있습니다 SO와 Regexlib.com을 검색했지만 더 많은 제한이있는 표현식을 얻습니다. 영국 전화 또는 미국 등

답변

4

사용할 수 있습니다. 모든 국가에는 전화 번호 형식이 있습니다. 여기 예

+0

맞습니다 - 표준이 없으므로 잘못된 항목을 방지 할 수 없도록 일반화하지 않고 전체적으로 일치하는 정규식을 제공하기가 어렵습니다. – GalacticCowboy

+0

유연한 형식이 필요했습니다. 여기 (SA)에는 엄격한 전화 형식이 없습니다 (예 : 0711231234, 071 123 1234, 071-123-1234, (071) 123 1234는 허용됩니다). 마스크가 달린 편집 상자가 최선의 방법이라고 생각합니다. – robasta

+0

이 경우 정확히 10 자리를 받아 들일 수있는 정규식을 가정하고 (공백), 공백으로 처리합니다. –

6

\+?[\d- ]{9,}

이 대시와 공백으로 긴 후 적어도 아홉 문자를 선택적으로 플러스로 시작하는 번호와 일치 할 것이다.

대시와 공백은 9 문자로 계산됩니다. 내가 대시와 공백을 제거하고 단지 그것은 그 나라를 위해 정규식을 적용, 자신의 나라를 입력하도록 요청하는 것이 가장 좋습니다

\+?[\d]{9,}

2

^[0-9- +] + $

<asp:RegularExpressionValidator runat="server" id="rgfvphone" controltovalidate="[control id]" validationexpression="^[0-9-+ ]+$" errormessage="Please enter valid phone!" /> 
18
^\s*\+?\s*([0-9][\s-]*){9,}$ 

브레이크를 아래로 :

^   # Start of the string 
    \s*  # Ignore leading whitespace 
    \+?  # An optional plus 
    \s*  # followed by an optional space or multiple spaces 
    (
    [0-9] # A digit 
    [\s-]* # followed by an optional space or dash or more than one of those 
) 
    {9,}  # That appears nine or more times 
$   # End of the string 

나중에 읽기 쉽고 수정하기가 쉽기 때문에 후자의 방식으로 작성하는 것이 더 좋습니다. 대부분의 언어에는 플래그를 설정해야합니다. C#의 RegexOptions.IgnorePatternWhitespace.

+0

이것은 매우 느슨한 접근 방법입니다. '+ - 1 --- 2345 - - - 678 9 -'와 같은 숫자를 받아들이고 최소한 9 자리 숫자가 있고 그 시작 부분에만 플러스가 나타나는지 확인합니다. 나는 그것이 당신이 원했던 것이라고 생각합니다. – configurator

0
@"^(?:\+?1[-. ]?)?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$" 

다음은 내가 사용하는 것입니다. 대부분의 경우 일반 전화 번호 유효성 검사를 처리합니다.

0

이 번호는 수퍼 일반어로 #을 포함하여 주어진 전화 번호에서 예상되는 문자 만 허용합니다. 형식 패턴은 무시됩니다.

@"^([\(\)\+0-9\s\-\#]+)$"