2012-08-23 3 views
7

sayılar ve sadece bir tire izin desen: 02-04, 02 vardır kabul edilebilir ama kalıbı: -- veya - veya -02 veya 04- veya 02-04-06 kabul edilemezRegex demek ben (başlangıçta veya sonunda olamaz) ortada düzenli numaralarını izin ifade ve tek hypen yazmaya çalışıyorum orta

böyle bir şey denedim ama bu olanak sağlayacak - başında ve aynı zamanda birden fazla izin -

'/^[0-9 \-]+$/' 

Ben regex ile bu kadar iyi değilim, bu yüzden küçük bir açıklama gerçekten yararlı olacaktır.

DÜZENLEME: bununla tekrar hatadan Üzgünüm ama geçersiz kabul edilmelidir sadece 2 basamak (123-346) ait olması numaraları gerekir.

cevap

12

bir deneyin:

/^\d{1,2}(-\d{1,2})?$/ 

bir ya da iki basamak, ardından isteğe bağlı olarak, ancak, bu kalıbı ihtiva eden dizeleri için

+1

Benimkiyle aynı cevabı, ama sen bana onu dövdün. Bu yüzden bir açıklama ekledim, reddettim ve kendi kendimi sildim. – slim

+0

Açıklama için teşekkür ederim Slim'e ihtiyacım var –

+0

Bu konuda tekrar hata ettiğim için özür dilerim ama sadece 2 rakamın olması gereken sayılara ihtiyacım var (123-346) geçersiz sayılmalıdır. –

5

Oldukça kolay:

^\d+(-\d+)?$ 

en az bir kısa çizgi eksi (-) ihtiva eden, isteğe bağlı bir grubu takip (+) basamak (\d), yine en az bir tane basamak takip etmektedir.

+0

Ancak bu ifadenin ifadesi için gerekli bir tire olarak '02' geçersiz hale getirecektir. –

+0

Bu, '02' –

+0

Ah, sorry; tire-eksi isteğe bağlı olduğu söylenen kısmı gözden kaçırdı. Şimdi sabit. Bu gereksinimin, kuşkusuz, sözgelimi, sözdiziminde, kalıbın her sözlü açıklaması, tire-eksi gibi gerekli görüldüğü için, biraz zor. – Joey

2

(bir tire, bir ya da iki basamağı takip eder)

çalışmalıdır aşağıdaki

2 haneden oluşan bir grup eksi olmadan 2 basamaklı bir grup eksi ekleyerek sona erer.