2013-01-31 1 views
1

나는 사용자가 텍스트 상자에 숫자와 문자를 입력하고 메시지를 표시하지 않는지 확인하는 방법이 있는지 궁금합니다.숫자와 문자를 모두 포함해야하는 텍스트 상자?

if(!Regex.IsMatch(string, @"^[a-zA-Z]+$") && !Regex.IsMatch(string, @"^[1-9]+$")) 
{ 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

그래서 내가 여기서 말하려고하는 것은입니다 문자열이 편지를 가지고 문자열이 숫자가없는 경우, 오류 메시지를 표시하지 않는 경우 다음과 같이 나는 그것을있다. 그러나 모든 글자 (또는 숫자)를 입력하면 오류 메시지가 표시되지 않으므로이를 수행 할 수있는 방법이 있는지 궁금합니다. 질문에서 연구하고 특정 문자를 허용하는 방법 외에는 아무것도 찾지 못했습니다. 순간

답변

1

은 당신이하고 싶은 메시지를 보여주는 것입니다.

if(!str.Any(Char.IsLetter) || !str.Any(Char.IsDigit)) { 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

참고 :

당신은 그 중 하나에 대한 정규 표현식을하지 않아도 프라하, 단 문자 집합은 당신이 원하는 무엇에 대한 허용 그래서 Char.IsLetter에 대한 사양입니다.

+0

Perfect !! 매우 감사합니다!! – dcolton147

2

, 당신의 코드는 문자열 전체가 문자로 만들어지지, 그리고 전체의 거의 정반대 번호

만들어진되지 않은 경우

메시지를 표시 말하는 너는 끝이야.

는 문제를 해결하려면, 당신은에 "또는" "가 포함되어 있지 않습니다"하는 "완전히 만들어진하지"및 "과"변경해야

if(!Regex.IsMatch(string, @"[a-zA-Z]") || !Regex.IsMatch(string, @"[1-9]")) 
{ 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

정규 표현식은 이제 단지를 찾아 단일 문자 또는 숫자이며 and은 이제 or입니다.

당신이 글자 어떤 숫자가 포함 된 입력 있는지 확인하려면, 당신은 별도의 단계로 다음을 수행 할 수 :

if(Regex.IsMatch(string, @"[^a-zA-Z0-9]")) 
{ 
    MessageBox.Show("Please Enter only numbers and letters"); 
    return; 
} 
1

간단한 생각 :

[a-zA-Z0-9]+ 당신이 수있는 정규식 시도하고 싶다.

[a-zA-Z0-9\s]+은 단어/숫자 사이에 허용되는 공백이있는 정규식입니다.

여기에 정규 표현식을보십시오 : 문자열이 어떤 문자를 가지고 있지 않거나 어떤 번호가없는 경우 http://regexhero.net/

관련 문제