2010-07-16 6 views
2

일부 필드의 유효성을 검사하여 데이터베이스에 유지하려고합니다. 특히, 문자열에 공백이 아닌 문자가 포함되어 있어야합니다. 다음과 같이Regex/javax.validation help - 비 공백 존재 확인 - Java

나는 javax.validation.constraints.Pattern 주석을 사용하고 있습니다 :

@Pattern(regexp = "[^\\s]") 
private String field; 

이 모든 문자열에 ConstraintViolation를 던질 것으로 보인다. 내가 뭘 놓치고 있니?

답변

1

\S (또는 그에 상응하는 [^\s])은 문서에 따라 작동해야합니다. 자동으로 넣을 것 같아요 "^" + expr + "$"? 워드 프로세서에 따르면 그것은해야하지,하지만 어쩌면

.*\S.* 시도 (내 의견에서 -이 대답은 어둠 속에서 총 샷 알았는데, 운이있어 그 문서는 ... 일부 개정을 사용할 수 있습니다.)

0

나는 "[\\s]+"이 필요하다고 생각합니다. +은이 문자 클래스 중 하나 이상이 발생하도록합니다.


편집 : 나는이 질문을 다시 읽어 경우 "개 실행"와 같은 문자열을 입력하면, 궁금하고 공백이 아닌 문자가 있기 때문에 나누기하지만, 공백 문자도 있습니다. 당신이 private void field을 왜 확실하지 - String 있어야이었다 :

((\\s+)?([^\\s]))+ 

마지막 일이 시도?

+0

그럴듯한 것 같지만, 아무 것도 변하지 않습니다. –

+1

'\ S' (또는 그와 동등한 [[^ \ s]')는 문서에 따라 작동해야합니다. 자동으로''^ "+ expr +"$ "'을 넣는다고 생각합니까? 문서에 따르면 안된다.하지만 어쩌면'. * \ S. * '을 시도해도 좋다. –

+0

@Ian - 그게 전부다. 답으로 게시하십시오, 나는 upvote하고 받아 들일 것입니다. –