2011-10-11 3 views
0

에 내가 입력을 ;–-을주고 방지 것 ASP.Net RegularExpressionValidatorValidationExpression을 만들고 싶어.ASP.Net : RegularExpressionValidator ValidationExpression는`방지하기 위해;`와`-` 시간

에 대해 수행 할 수 있으며 ValidationExpression="[^-]*"입니다.

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
     runat="server" 
     ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="**" 
     ValidationExpression="[^-]*"></asp:RegularExpressionValidator> 

위의 표현은 단일 문자 을 방지 할 수 있습니다. 단 하나의 캐릭터에 대한 허락을드립니다. 나는 두 글자 (--)를 차단할 것입니다. 한 번에 ;을 예방해야합니다.

아무도 도와 줄 수 있습니까?

+1

http://en.wikipedia.org/wiki/Regular_expression –

답변

2

Regex가 더 스마트하게해야합니다. 여러 개의 하이픈, m- 대시 및 세미콜론을 차단하려고합니다.

그래서, 그것을 아래로 끊기 @"^(?=[^–;]*)((?!--).)*$"

을 시도 :

^는 줄의 시작과 일치하고, 검증이 전체 문자열을 일치시키는 데 사용되도록하는 데 도움이됩니다.

첫 번째 괄호 집합의 표현은 m- 대시와 세미콜론을 포함하지 않는 문자 집합과 일치합니다. \x2014 이스케이프 시퀀스를 사용하여 m- 대시의 16 진수 값을 대체 할 수 있습니다. ?=으로 non-consuming으로 정의됩니다. 즉, Regex 엔진은이 패턴과 일치해야하지만 일치하는 항목을 찾으면 해당 인덱스를 전진시키지 않으므로 동일한 문자 집합이 다음 패턴에 대해서도 테스트됩니다.

두 번째 괄호 세트의 표현식은 역 사전 검색입니다. 두 개 이상의 인접한 하이픈을 포함하지 않는 문자 집합과 일치합니다. 그러나 이것은 약간 느릴 수 있습니다. 이 정규식은 기본적으로 Regex 엔진이 한 번에 하나씩 각 문자를 고려하여 다음 문자가 역 패턴과 일치하지 않도록 해당 지점을 미리 확인합니다.

꼬리말 $은 줄 끝을 표시합니다. ^과 함께하면 일치하는 항목을 결정할 때 단일 문자열 (또는 여러 줄 데이터의 행)을 모두 볼 수 있습니다.

Derek Slater's과 같은 Regex 테스터에 연결하고 주변에서 놀아 원하는 모든 시나리오를 중지하십시오.

+0

감사합니다 ... –

관련 문제