Diyelim ki +7(903)-123-45-67 şeklinde bir karakter dizimiz var ve biz bu dizideki sayıların tamamını bulmak istiyoruz. Ama öncekinden farklı olarak, tek bir sayıyla değil, bütün sayılarla ilgileniyoruz: 7, 903, 123, 45, 67.
Sayı, bir veya daha fazla rakamdan oluşan bir dizidir \d. Kaç tanesine sahip olduğumuzu işaretlemek için bir nicelik belirteci ekleyebiliriz.
Nicelik {n}
En basit nicelik belirteci, süslü parantezler içindeki bir sayıdır: {n}.
Bir karaktere (ya da bir karakter sınıfına, veya [...] kümesine vb.) nicelik belirteci eklendiğinde, bize kaç tanesine sahip olduğumuzu belirtir.
Birkaç gelişmiş formu var, örneklere bakalım:
- Tam sayım:
{5} -
\d{5},\d\d\d\d\dile benzerdir. İkiside tam olarak 5 adet rakamı belirtir.Aşağıdaki örnekte 5 basamaklı sayı aranır:
alert( "12345 yaşındayım".match(/\d{5}/) ); // "12345"Daha uzun sayıları hariç tutmak için
\bkullanabiliriz:\b\d{5}\b. {3,5}, 3 ila 5 aralığında eşleştirir-
3 ila 5 basamaklı sayıları bulmak için sınırları süslü parantezlerin içinde belirtebiliriz:
\d{3,5}alert( "12 yaşında değilim, 1234 yaşındayım.".match(/\d{3,5}/) ); // "1234"Üst sınırı kaldırabiliriz.
\d{3,},3veya daha fazla basamaklı sayıları arar:alert( "12 yaşında değilim, 345678 yaşındayım".match(/\d{3,}/) ); // "345678"
Şimdi +7(903)-123-45-67 değerine dönelim.
Sayı, arka arkaya bir veya daha fazla rakamdan oluşan bir dizidir. Yani düzenli ifade (regexp) şu şekilde olacaktır, \d{1,}:
let str = "+7(903)-123-45-67";
let numbers = str.match(/\d{1,}/g);
alert(numbers); // 7,903,123,45,67
Kısaltmalar
Çok kullanılan nicelik belirteçlerinin kısaltmaları mevcuttur:
+-
“bir veya daha fazlası” anlamına gelir,
{1,}ifadesine benzerdir.Örneğin,
\d+sayıları aramak içindir:let str = "+7(903)-123-45-67"; alert( str.match(/\d+/g) ); // 7,903,123,45,67 ?-
“sıfır ya da bir” anlamına gelir,
{0,1}ifadesine benzerdir. Başka bir deyişle, isteğe bağlı hale getirir.Örneğin,
ou?rkalıbı, ilk önceoiçin, ardındanu(sıfır veya bir adet) için, ve daha sonrasındariçin arama yapar.Yani,
colou?r, hemcolorhem decolouröğelerini bulur:let str = "Should I write color or colour?"; alert( str.match(/colou?r/g) ); // color, colour *-
“Sıfır veya daha fazlası” anlamına gelir,
{0,}ile benzerdir. Yani bir karakter kendini tekrar edebilir veya hiç olmayabilir:Örnek olarak,
\d0*, bir sayı ve ardından onu takip eden sıfırları arar (çok sayıda sıfır olabilir ya da hiç olmayabilir):