문제

제가 작업 중인 ASP.Net 2.0 프로젝트의 요구 사항은 특정 필드를 최대 10단어(문자 아님)로 제한합니다.현재 다음 ServerValidate 메서드와 함께 CustomValidator 컨트롤을 사용하고 있습니다.

Protected Sub TenWordsTextBoxValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles TenWordsTextBoxValidator.ServerValidate
    '' 10 words
    args.IsValid = args.Value.Split(" ").Length <= 10
End Sub

단어 수를 계산하는 더 철저하고 정확한 방법이 있는 사람이 있나요?

도움이 되었습니까?

해결책 2

이 정규식은 훌륭하게 작동하는 것 같습니다.

"^(\b\S+\b\s*){0,10}$"

업데이트:위에는 몇 가지 결함이 있어서 결국 이 RegEx를 사용하게 되었습니다.

[\s\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\xBF]+

split() 해당 정규식의 문자열을 사용하고 length 결과 배열을 사용하여 올바른 단어 수를 얻습니다.

다른 팁

단어 수를 계산하는 정규식과 함께 내장 유효성 검사기 중 하나를 사용할 수 있습니다.

나는 정규식에 약간 녹슬었으므로 안심하십시오.

(\b.*\b){0,10}

나는 mharen의 답변에 투표하고 댓글도 달았지만 댓글은 기본적으로 숨겨져 있으므로 다시 설명하겠습니다.

사용자 정의 유효성 검사기 대신 정규식 유효성 검사기를 사용하려는 이유는 정규식 유효성 검사기가 사용 가능한 경우 javascript를 사용하여 정규식 클라이언트 측의 유효성을 자동으로 검사하기 때문입니다.유효성 검사를 통과하면 별 문제가 되지 않지만 누군가 클라이언트 측 유효성 검사에 실패할 때마다 서버에서 포스트백을 수행하지 않아도 됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top