2009-12-26 28 views
10

10 basamaklı bir telefon numarasını doğrulayacak basit bir normal ifadeyi arıyorum. Numaranın tam olarak 10 hane, harf, tire veya parşömen olmadığından ve ilk iki hanesinin 0 veya 1 ile başlamadığından emin olmak isterim. Birisi yardım edebilir mi?10 basamaklı bir telefon numarası için doğrulama

+0

FYI - Good regex sitesi: http://www.regular-expressions.info/ –

+0

Bağlantı için teşekkürler. Yer işaretli! Gelecek için bana yardım edecek. – jon

+2

Yani bu, kesinlikle ikinci rakam olarak 0 ve 1'e izin veren Kuzey Amerika Numaralandırma Planı ile ilgisi yok. Hangi dünyaya bakıyorsunuz? –

cevap

19

/[2-9] {2} \ d {8}/

+0

Teşekkür ederim Mopoke. Bu da iyi çalışıyor. :) – jon

+1

Gerçekten biraz regex öğrenmek zorundayım çünkü şimdi daha önce hiç olmadığı kadar kullanıyorum. – jon

+0

Kişinin kendini regexps hakkında daha fazla bilgi edinmeye başladığını söylemesi durumunda, kişi hemen geri adım atmalı ve yeniden düşünmelidir ... –

9
^[2-9]{2}[0-9]{8}$ 

I dikkate [0-9], özellikle önceki [2-9 dikkate alındığında, d \ daha okumayı daha iyi olması için ]

^ve $ giriş dizesinin SADECE bu 8 karakterden oluştuğundan emin olun - aksi takdirde giriş dizesinin daha büyük olmadığı garanti edilmez - yani "12345678901" ifadesi bu iki karakterle normal ifadeyle eşleşir - 11 karakterdir ve 1 ile başlar!

0

Bu regex komut dosyası yardımcı olabilir. Öncelikle 1- işareti dahil olmak üzere herhangi bir "noktalama işareti" karakterini şeritlerim, sonra 10 rakamı doğrular.

muhtemelen gerekmez ekstra bölüm Randal'ın belirttiği gibi 000-000-0000

formatPhone = function() { 
var phone = this.value; 
phone = phone.replace(/^1(|-|\(|\)|\.|)*|-|\(|\)|\.| /g, ''); 
if(phone.length === 10) { 
    this.value = phone.slice(0,3) + '-' + phone.slice(3,6) + '-' + phone.slice(6,10); 
} 
} 
2

biçimlendirme olduğunu, bu soru telefon numaraları Kuzey Amerika'da biçimlendirilir şekilde (tutarlı değil OP 'ilk iki rakamın 0 veya 1 ile başlamadığı' belirtilmiş olsa bile. Kuzey Amerika telefon numaraları için daha iyi bir regex olacaktır:

^[2-9] {1} [0-9] {9} Örneğin $

, Washington DC'deki alan kodudur (202). NYC alan kodu (212) var. Kuzey New Jersey'de (201) var.

Fakat daha doğru olarak, NANP, alan kodunda ve değişimde (ilk altı basamak) izin verilenlerle ilgili olarak birçok kuralı vardır. Bu regex hala çoğu durumda kapsamalıdır. https://en.wikipedia.org/wiki/North_American_Numbering_Plan

+0

Amerika için bunun nerede olduğunu söyledi? – Gui13

0

Telefon Numaraları 10 haneli olacak ve 7,8 başlayıp 9

[REGULAREXPRESSION ("^ ([07] [0-9] [0-9] [0- olacaktır 9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] | 8 [0-9] [0-9] [0-9] [ 0-9] [0-9] [0-9] [0-9] [0-9] [0-9] | 9 [0-9] [0-9] [0-9] [0-9 ] [0-9] [0-9] [0-9] [0-9] [0-9]) $", ErrorMessage = "])" Geçerli Mobil Numara gir

referans: http://www.regular-expressions.info/numericranges.html

İlgili konular