2013-10-31 2 views
0

"-"문자로 숫자를 대조하고 싶습니다. 예를 들어Regex에는 숫자와 "-"문자 만 포함될 수 있습니다.

:

123-456 - Valid 
1-2-3-4 - Valid 
223-213- - Invalid 
-3423-3 - Invalid 
ASD34-2 - Invalid 

I'v 시험이 :

^([0-9] -?) * $

그러나 제대로 작동하지 않습니다.

+1

'123 --- 46'이 유효할까요? 또는'34-'? 전자 t.c - 좀 더 구체화하십시오 –

+0

Nope. 반복되는 "-"문자가 없습니다. 그리고 아니, "-"문자로 끝날 수 없다. –

답변

2

이 다른 대답과는 달리, 숫자 내에서 여러 - 일치해야합니다 : 아주 가까운

^\d+(?:-\d+)*$ 
+0

반복되는 "-"문자는 허용되지 않습니다. :) –

+0

수정 됨 - 이제 수정해야합니다. (이것은 OP에서 분명하지 않았다.) – pobrelkey

+0

그래! 끝난. 고맙습니다 :) –

1

하지? 끝에 대시가있는 케이스 만 통과합니다. [0-9] 대신 \ d를 사용할 수 있습니다.

^\d(\d|-\d)*$ 

이 하나의 옵션으로 더 많은 숫자 또는이 (12)와 같은 다수의 다음 대시 일치하지 않습니다 뒤에 하나 개 이상의 숫자가있는 대시 다음에 시작할 때 적어도 하나 개의 숫자는, --- 말한다 (34)

관련 문제