JavaScript String matchAll () yöntemi, bir dizeyi normal ifadeyle eşleştiren sonuçların yineleyicisini döndürür.
matchAll()
Yöntemin sözdizimi şöyledir:
str.matchAll(regexp)
İşte str
bir dizedir.
matchAll () Parametreleri
matchAll()
Yöntem alır:
- regexp - Normal bir ifade nesnesi (Bağımsız değişken, nesne
RegExp
değilse dolaylı olarak dönüştürülürRegExp
)
Not: Eğer RegExp
nesne yoktur /g
bayrak, bir TypeError
atılacaktır.
MatchAll'den dönüş değeri ()
- Yakalama grupları dahil eşleşmeleri içeren bir yineleyici döndürür.
Not : Döndürülen yineleyicinin her bir öğesi aşağıdaki ek özelliklere sahip olacaktır:
groups
- Yakalanan eşleşmeler olarak adlar ve değerler olarak anahtarlara sahip, adlandırılmış yakalama gruplarının bir nesnesi.index
- Sonucun bulunduğu arama dizini.input
- Arama dizesinin bir kopyası.
Örnek 1: matchAll () kullanma
const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )
Çıktı
('JavaScript', dizin: 14, girdi: 'Java değil JavaScript öğreniyorum.', Gruplar: tanımsız) ('Java', dizin: 29, girdi: 'Java değil JavaScript öğreniyorum.', Gruplar: tanımsız)
Burada, döndürülen yineleyici for… of
döngü kullanılarak yinelenir .
Örnek 2: Grupları yakalamak için matchAll kullanma
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )
Çıktı
Bulunan "isim Albert." dizinde 3. Yakalanan isim = Albert Bulundu "NAME is Soyuj." dizinde 24. Yakalanan isim = Soyuj
Burada, dizenin belirli bir bölümünü eşleştirmek için normal bir ifade kullandık. Daha matchAll()
iyi kullanarak maçtaki belirli grupları yakalayabiliriz match()
.
Önerilen Okuma: JavaScript String match ()