내가 자바 스크립트에서 정규식을 사용하여 다음과 같은 형식정규식
[Number]-[Number]
의 입력과 일치하는 것을 시도하고있는 수의 범위 표현식을 일치.
200-300
확인-0992
이 NOT OKaa-76
이 NOT OK1-
이 NOT OK내가 트라이
1-100
OK : 예를 들어d :
^\d+(-\d+)*$
하지만 이는 전혀 작동하지 않습니다.
모든 포인터?
내가 자바 스크립트에서 정규식을 사용하여 다음과 같은 형식정규식
[Number]-[Number]
의 입력과 일치하는 것을 시도하고있는 수의 범위 표현식을 일치.
200-300
확인-0992
이 NOT OKaa-76
이 NOT OK1-
이 NOT OK내가 트라이
1-100
OK : 예를 들어 d :
^\d+(-\d+)*$
하지만 이는 전혀 작동하지 않습니다.
모든 포인터?
찾으시는 정규식은 /\d+-\d+/
입니다. 전체 행이 정규 표현식과 일치하도록 요구하지 않으면 주변을 둘 필요가 없습니다 ^
및 $
. 예를 들어 :
/\d+-\d+/.test("a-100")
// Result: false
/\d+-\d+/.test("-100")
// Result: false
/\d+-\d+/.test("10-100")
// Result: true
가 작동하지 않는 이유는 *
한정사가 정규식은 단순히 222
일치하도록 허용하는 (-\d+)
가 선택하게한다는 것입니다. 그것을 제거하고 모두 잘 될 것입니다. 당신은 괄호가 필요하지 않은 경우,이를 제거 :
^\d+-\d+$
당신이 당신의 숫자는 0과 100 사이하려면 제목으로?
각 측면에 당신의 숫자가 0을 후행하지 않고, 1에서 100의 범위에 있는지 확인하려면이 대신 \d
를 사용할 수 있습니다
100|[1-9]\d|\d
귀하의 정규식은 다음이 될 것입니다 :
^(?:100|[1-9]\d|\d)-(?:100|[1-9]\d|\d)$
왼쪽 숫자가 올바른 숫자보다 작아야합니까?
위의 정규 표현식은 첫 번째에 대해서는 2222-1111
이고 두 번째 경우에는 99-12
입니다. 당신이 낮은보다 커야 오른쪽 숫자를 원한다면, 당신은 캡처 괄호로 각 숫자를 캡처 할 수 있습니다 : 일치가있는 경우
^(\d+)-(\d+)$
또는 다음
^(100|[1-9]\d|\d)-(100|[1-9]\d|\d)$
는
말
if(regexMatcher.group(2) > regexMatcher.group(1)) { ... success ...}
'[Number] - [Number]'는 구체적이지 않습니다. 다른 한정자가 있습니까? – esqew
내 질문에 정확한 시나리오를 편집하여 도움이 되었기를 바랍니다. –
지금까지 가지고있는 패턴과 '1'과 '1-10-100-1000'을 비교할 수있는 이유를 이해하고 있습니까? –