Bu öneri, JavaScript'in düzenli ifadeler (regular expressions) için dinamik bayrak (flag) değiştirme yeteneğini genişletmeyi amaçlamaktadır. Geliştiricilere, düzenli ifade desenlerinin alt bölümlerinde farklı arama ve eşleştirme davranışları tanımlama imkanı sağlar.
const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false
const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false
Bu örnekler, düzenli ifade içinde bayrakların nasıl dinamik olarak değiştirilebileceğini göstermektedir:
(?-i:...)
mevcut bayrakları geçici olarak devre dışı bırakır(?i:...)
büyük/küçük harf duyarsız eşleştirmeyi etkinleştirir
- Daha esnek düzenli ifade tanımlama
- Alt desenler için farklı arama davranışları
- Karmaşık metin eşleştirme senaryolarında esneklik
- Performans optimizasyonu
- Kod okunabilirliğini artırma
- TC39 Proposal: RegExp Modifiers
- Destekleyen Tarayıcılar: Chrome 125, Edge 125, Firefox 132
- Öneri Durumu: Stage 4 (Standartlaştırma aşamasında)