2010-02-16 5 views
0

두 글자의 입력을 막고 싶지만 사용자가 입력 키를 사용할 수있을뿐만 아니라 둘 중 하나를 입력 할 수있게하려고합니다. 블랙리스트 문자 대신 화이트리스트를 사용하고 싶습니다. 정규 표현식은 최소 및 최대 길이를 지원해야합니다. asp : regularexpression 컨트롤을 사용하여 클라이언트 측 유효성 검사를 수행하고 있습니다. 이 문제에 대한 유일한 해결책이 아니라면 서버 측 유효성 검사를 수행하고 싶지 않습니다. 다른 누구도이 문제에 부딪 혔습니까? 모든 도움을 미리 감사드립니다. 여기 RegEx For Multiline ASP.NET Textbox

내가 현재 사용하고 정규식입니다 : (?!. (& #))!

^[A-ZA-Z0-9 @ # $으로의 %^& _ = + ~ '() \? -] {1,1000} $

여러 줄로 설정되어있는 asp.net 텍스트 상자를 사용하고 있으므로 허용해야합니다. \ n 또는 여러 줄 입력란을 사용하는 요점은 무엇입니까 :)

사용자가 & #을 함께 입력하지 못하게하고 &과 함께 텍스트를 입력 할 수있게하고 싶습니다. 또는 #을 입력하고 모든 문자를 허용하려면 a-zA-Z0-9! @ # $ %^& * _ = + ~ " '" ";, : \ r \ n.() \?

내 순서에 대한 질문이 다음과 같이

유효한 텍스트 입력이 될 것입니다. 주문 번호는 12345입니다. 도와 주시겠습니까? 내가 이 텍스트 상자에 & #, 를 입력에서 사용자를 유지하기 위해 노력하고 있지만 그들이 & 또는 #를 입력 할 수 있도록 할

다음과 같이

잘못된 텍스트 입력이 될 것입니다.

+0

키가와는 아무 상관이 없었다 입력하면 텍스트 상자에 새로운 라인을 가질 수 없습니다. 네 질문에 - 뭐라구?! 몇 가지 예가 도움이 될 것입니다. – Kobi

답변

0

string pattern = @"^(?!.*&#).{1,1000}$"

이 문자열이 조합 & #를 포함하지 않으며, 그렇지 않으면 1 개 1000 문자 사이에 아무것도 포함, 긴 수 있다는 주장한다. 허용 목록을 실제로 사용하려면 { 앞에있는 .을 허용 목록 문자 클래스 ([])로 바꿉니다.

+0

가깝지만 여전히 작동하지 않습니다. - & #을 금지하지만 리턴 키를 허용하지 않으며 키가 여러 줄인 텍스트 상자이기 때문에 –

+0

패턴은 그대로입니다. 'RegexOptions.Singleline'을 지정해야합니다. – Jay

+0

RegExOptions는 정규식 컨트롤에서 사용할 수 없습니다. 우리는 서버 측 유효성 검사를 수행하지 않습니다. –

0

이 당신을 위해 작동합니다 :

string pattern = @"^(?![\s\S]*&#)[\s\S]{1,1000}$"