2014-12-09 2 views
0

JSON 스키마 패턴에서는 1부터 9 자리까지 양의 정수를 전달하려고합니다.Regex JSON 스키마 필드는 1-9 자리 여야하지만 다른 자릿수가없는 1-9 개의 숫자는 거부됩니다.

선행 0과 후행 0이 좋습니다.

1에서 9 자리까지의 모든 0 (즉, 변환 될 때의 수가 0과 같음)은 유효하지 않습니다.

유효한 입력 예 :

123456789 

123 

잘못된 입력 예 :

0 
000 
0000000 
An Empty string 
1234d5 
123456789123 

내가 시도 변동

^(?!0{1,9})[0-9]{1,9}$ 

에 그러나 이것은 거짓 영 숫자를 선도 유효 실패합니다.

모든 아이디어는 기꺼이 받아 들여집니다.

답변

0

이 문제를 해결하려면 네이티브 룩어 헤드에 문자열 $ 앵커의 끝 부분을 추가하기 만하면됩니다.

^(?!0{1,9}$)[0-9]{1,9}$ 
     ^

Live Demo | Explanation

+0

내 단위 테스트에서 구입 한 것과 같이 작동합니다. 감사합니다. 직장에서 일하는 사람들 중 하나가 떠오른 대안은 여기에 있습니다. (^ [0-9] {1,9} $) (?

+0

여러분을 환영합니다. – hwnd

0

정규식이 필요하지 않다는 뜻입니다.

!isNaN(x) && +x !== 0 && x.length >=1 && x.length <= 9