2012-04-21 7 views
2
str = "33d4m"; //d for days and h for hours and m for min 
patt=/^[1-9]+d/i; 
result=patt.test(str); 
document.write("Returned value: " + result); 

경우는 true에만 즉, D, 이전에 하나의 숫자가있는 경우 미만 십일 남아 또는 몇 시간 내가 또한자바 스크립트 정규식 정확히 하나 개의 숫자 패턴 I 반환 될 원하는

str = "23h5m" 
에 true를 돌려 원하는처럼 남아

d 이전에 두 자릿수가있는 경우 false를 반환하면
, h가 두 자릿수이면 true를 반환합니다.
내가 잘못 가고있는 곳.

답변

2

이 작업을 시도 할 수 있습니다 : 그것은 의미

patt=/^\d{1,2}h|^\dd/i 

:

Match 1 or 2 digits followed by the literal 'h' 
OR match a single digit followed by the literal 'd' 
+0

감사합니다. –

+0

@Wasim 고마워, 방금 다시 편집했는데,'[1-9] 문자 집합을'\ d' 자릿수로 변경했다. 그렇지 않으면'20h5M'이 일치하지 않을 것이기 때문이다. – Robbie

+0

나는 그것을 이해하지만 정규 표현식을 이해할 수는 있지만 정규 표현식이 부족하기 때문에 그것을 작성할 수 없다. 다시 한 번 감사드립니다. –

1

내가이 같은 작업 것이라고 생각 :

patt=/^[1-9][dh]/i 
+0

문제는 –

+0

당신이 몇 가지 샘플 케이스를 넣을 수 있습니다 수정됩니다. "몇 시간"은 얼마입니까? – Joseph

+0

시간은 분명히 23보다 크지 않을 것입니다. –

1

플러스는 "적어도 하나"를 의미한다 -을 제거합니다. 에 모두 자릿수에 [0-9]을 사용하고 싶을 수도 있지만 이는 단지 추측에 불과합니다.

patt=/^[1-9]d/i; 
+0

보다 크거나 같기 때문에 str = "23h34M"이면 true를 반환해야합니다. 가능하다면 –

+0

이 주석은 의미가 없으며, 상관 관계가 없다면 33d4M에 대해 false를 반환하지만 23h34M에 대해서는 true를 반환합니다. 패턴을 필요로하는 정규식 작업을하려면 ... 패턴은 무엇입니까? –

+0

패턴은 [1-9] d 또는 [1-9] [1-9] h이며, 기본적으로 d 일 동안, h 시간 동안입니다. 일이 10 시간 또는 몇 시간 남지 않은 경우 true를 반환해야합니다. –