2013-04-15 4 views
-1

나는이 요구 사항을 가지고 있으며, 나는 현명함 끝에있다. 이 아이디어를 얻으려면 어떻게해야할까요?이름 범위 중복 확인.

필드는 단일 값이나 필터의 일부 범위를 허용합니다. 범위의 예 : "A-D", 모든 고객 이름이 A, B, C 또는 D로 시작하는 이름; "SA-SP", SA, SB, ..., SP로 시작하는 모든 이름; "MILG", Milg로 시작하는 모든 고객 이름;

계정 이름을 추가하는 동안 범위가 겹치지 않아야합니다. 예 : P-Q 범위가 겹치기 때문에 A-Q, P-Z가 유효하지 않습니다.

+2

시도한 일부 코드를 표시 하시겠습니까? – LukeHennerley

+0

그래서 한 번에 여러 범위를 허용하려고합니다. ''-k, n-Q, W-za, Zc-Zw ''? –

답변

0

순수 정규식이 아닙니다. 정규 표현식은 일치하는 문자가 이전에 일치 된 문자보다 "작다"는 것을 검사 할 수 없습니다.

내가 ","[A-Za-z] 다음에 의해 분할

에 의해 \p{L}을 대체 자바 스크립트에서이

^\p{L}+(-\p{L}+)?(?:,\s*\p{L}+(-\p{L}+)?)?$: 

같은 C#을 뭔가에, 패턴과 일치하는 것이 좋습니다 체크 할

  1. 경우 모든 발견 된 범위 패턴은 유효한 범위입니다. ==> 첫 번째 범위의 끝이 시작 다음에옵니다 (즉 시작 문자가 끝 문자보다 "작음").

  2. 범위는 첫 번째 범위의 시작이 다른 범위를 벗어나는 경우 및 첫 번째 범위의 끝도 다른 범위 내에 있지 않은 경우 ==> 겹치지 않습니다.