5

특정 텍스트에 대한 텍스트 상자의 유효성을 검사하고 비워 두지 않아야합니다. 그러나 텍스트 상자가 공백이면 정규식 유효성 검사기가 유효성을 검사하지 않습니다. 그러나 텍스트 상자에 내용을 입력하면 유효성이 검사됩니다.정규식 검사기가 빈 텍스트 상자의 유효성을 검사하지 않습니다.

텍스트 상자가 비어 있어도 정규 표현식을 트리거하는 방법은 무엇입니까?

Required Validator + Regex Validator를 동시에 사용해야합니까? 감사.

<asp:TextBox ID="txtcard" runat="server" MaxLength="16"></asp:TextBox> 

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
ControlToValidate="txtcard" ErrorMessage="Please type credit card no" 
ValidationExpression="^\d{16}$"></asp:RegularExpressionValidator> 

답변

3

나는 일반적으로 제안하고 필요한 검사기를 가지고 있습니다. 이렇게하면 각 규칙마다 다른 메시지를 가질 수 있습니다.

웹 개발자라면 누구나 볼 수있는 또 다른 옵션은 JQuery 유효성 검사 플러그인입니다. 이것을 Fluent Validation과 결합하면 비즈니스 개체에 대한 모든 유효성 검사 규칙을 한 곳에 보관할 수 있으며 동일한 규칙을 사용하여 클라이언트 측 및 서버에서 유효성을 검사 할 수 있습니다.

JQuery Validation

Fluent Validation

3

동시에 사용해야합니다. 값이 비어 있으면 유효성 검사 오류를 반환하지 않는 것은 ASP.NET 유효성 검사 컨트롤에서 일반적입니다. System.ComponentModel.DataAnnotations 네임 스페이스의 유효성 검사 특성에서 동일한 동작을 볼 수 있습니다.

+0

+1. 사용자 정의 DataAnnotationValidator를 사용하여이 문제를 해결할 수 있습니다. 나는 하나를 썼지 만 기본 객체를 상속 받아야합니다. 그것은 매우 유용합니다 : http://bit.ly/bcwher 그것은 여러 개의 ValidationAttributes를 속성에 추가 할 수있게 해주 며, 검증을 실패하게하는 첫 번째 오류 메시지를 표시합니다 (여러 ASP 검증기 에서처럼) –

4

당신은 당신의 RegularExpressionValidatorRequiredFieldValidator와 결합한다.

둘 중 하나라도 실패하면 유효성 검사 실행으로 인해 차단됩니다. 각각 하나의 목적을 위해 사용되며 RegularExpressionValidator의 목적은 입력 된 텍스트의 텍스트가 아닌 유효성을 검사하는 것입니다.

모든 유효성 검사기에서이 작업을 수행하려면 을 사용하고 ValidateEmptyText='true'을 사용할 수 있습니다. 그럼 당신은 자바 스크립트 정규식 검사를 할 수 있습니다. 표준 접근 방식이므로 두 유효성 검사기를 권장합니다.