Skip to content

Instantly share code, notes, and snippets.

@alpgul
Created April 25, 2025 08:19
Show Gist options
  • Save alpgul/009753696c21d7016d0f368fc9e10fd5 to your computer and use it in GitHub Desktop.
Save alpgul/009753696c21d7016d0f368fc9e10fd5 to your computer and use it in GitHub Desktop.

Revisions

  1. alpgul created this gist Apr 25, 2025.
    39 changes: 39 additions & 0 deletions proposal-regexp-modifiers.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    # ECMAScript için Düzenli İfade Desen Değiştiricileri (RegExp Modifiers)

    ## Kısa Açıklama
    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.

    ## Örnek Kullanımlar

    ### Örnek 1: Büyük/Küçük Harf Duyarlılığını Kontrol Etme
    ```javascript
    const re1 = /^[a-z](?-i:[a-z])$/i;
    re1.test("ab"); // true
    re1.test("Ab"); // true
    re1.test("aB"); // false
    ```

    ### Örnek 2: Kısmi Bayrak Değiştirme
    ```javascript
    const re2 = /^(?i:[a-z])[a-z]$/;
    re2.test("ab"); // true
    re2.test("Ab"); // true
    re2.test("aB"); // false
    ```

    ## Açıklama
    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

    ## Faydaları
    1. Daha esnek düzenli ifade tanımlama
    2. Alt desenler için farklı arama davranışları
    3. Karmaşık metin eşleştirme senaryolarında esneklik
    4. Performans optimizasyonu
    5. Kod okunabilirliğini artırma

    ## Referanslar
    - TC39 Proposal: [RegExp Modifiers](https://github.com/tc39/proposal-regexp-modifiers)
    - Destekleyen Tarayıcılar: Chrome 125, Edge 125, Firefox 132
    - Öneri Durumu: Stage 4 (Standartlaştırma aşamasında)