[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-js-string-islemleri-dilimleme-regex-ve-temel-manipulasyon":3},{"dataItem":4,"heading":36,"metaData":38,"schema":81},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":10,"seo_description":11,"seo_keywords":12,"slug":13,"createdAt":14,"updatedAt":14,"blog_categories":15,"authors":19,"image":24,"thumb":25,"image_webp":26,"thumb_webp":27,"rating":28,"heading_title":7,"heading_sub_title":17,"readingTime":29,"url":34,"comments":35,"meta_cover":24},40732,"JS String İşlemleri: Dilimleme, Regex ve Temel Manipülasyon","Bu kılavuz JavaScript'te string dilimleme (slice, substring), ayırma (split), değiştirme (replace), regex kullanımı ve template literals ile pratik temizleme tekniklerini örneklerle açıklar.","\u003Ch2>JS String İşlemleri: Dilimleme, Regex ve Temel Manipülasyon\u003C/h2>\n\u003Cp>JavaScript'te metin verisiyle çalışmak; kullanıcı girdileri, dosya satırları, URL'ler ve loglar üzerinde işlem yapmak için sık ihtiyaç duyulan bir beceridir. Bu makalede slice(), substring(), split(), replace() ve regex temellerini; template literals ve temizleme (sanitization) teknikleriyle birlikte örnekler üzerinde adım adım açıklıyorum. Temel açıklamalar resmi dokümanlara dayanmaktadır.\u003C/p>\n\n\u003Ch3>Temel dilimleme: slice() vs substring()\u003C/h3>\n\u003Cp>İki yaygın dilimleme yöntemi \u003Cstrong>slice(start, end)\u003C/strong> ve \u003Cstrong>substring(start, end)\u003C/strong> biçimindedir. Önemli farklar şunlardır:\u003C/p>\n\u003Cul>\n  \u003Cli>slice negatif indeksleri destekler; substring negatif olanları 0 olarak işlemeye meyillidir.\u003C/li>\n  \u003Cli>slice end parametresini dışlayarak sonuna kadar alır; substring de benzer davranır ama negatif ve ters argümanlarda farklı sonuç verir.\u003C/li>\n\u003C/ul>\n\u003Cp>Daha teknik açıklamalar için bakınız: \u003Ca href=\"https://javascript.info/string\">https://javascript.info/string\u003C/a>.\u003C/p>\n\u003Cp>Hızlı örnekler:\u003Cbr>\nconst s = \"Merhaba Dünya\";\u003Cbr>\ns.slice(0, 7)  // \"Merhaba\"\u003Cbr>\ns.slice(-5)    // \"Dünya\" (negatif indeks)\u003Cbr>\ns.substring(0, 7) // \"Merhaba\"\u003C/p>\n\n\u003Ch3>Ayırma: split()\u003C/h3>\n\u003Cp>\u003Cstrong>split(separator, limit)\u003C/strong> bir string'i ayırıcıya göre diziye çevirir. Ayırıcı string veya regex olabilir; limit parametresi çıktı dizisinin uzunluğunu sınırlar. (Dokümantasyon: \u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split\">MDN split\u003C/a>.)\u003C/p>\n\u003Cp>Örnekler:\u003Cbr>\n\"elma,armut,karpuz\".split(\",\") → [\"elma\",\"armut\",\"karpuz\"]\u003Cbr>\n\"satır1\\nsatır2\".split(/\\r?\\n/) → satır bazlı dizi\u003C/p>\n\n\u003Ch3>Değiştirme ve regex: replace()\u003C/h3>\n\u003Cp>\u003Cstrong>replace(searchValue, replaceValue)\u003C/strong> tek bir eşleşmeyi değiştirir; global değiştirme için searchValue olarak regex ve /g bayrağı kullanın. replace() aynı zamanda bir fonksiyon alarak her eşleşme için dinamik dönüşüm yapmanıza da olanak sağlar. Temel referans: \u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace\">MDN replace\u003C/a>.\u003C/p>\n\u003Cp>Örnekler:\u003Cbr>\n\"kitap kitap\".replace(\"kitap\", \"defter\") → \"defter kitap\" (sadece ilkine etki eder)\u003Cbr>\n\"kitap kitap\".replace(/kitap/g, \"defter\") → \"defter defter\" (tüm eşleşmeler)\u003Cbr>\n\"John Doe\".replace(/(\\w+)\\s+(\\w+)/, (match, p1, p2) => `${p2}, ${p1}`) → \"Doe, John\" (yakalama grupları ile dönüşüm)\u003C/p>\n\n\u003Ch3>Regex: Kullanım örnekleri ve bayraklar\u003C/h3>\n\u003Cp>Regex, arama, doğrulama ve toplu değiştirme için güçlü bir araçtır. Temel kullanım örnekleri:\u003C/p>\n\u003Cul>\n  \u003Cli>/abc/.test(str) — desenin varlığını boolean olarak döndürür.\u003C/li>\n  \u003Cli>str.match(/\\d+/g) — metindeki tüm sayıları dizide toplar.\u003C/li>\n  \u003Cli>s.split(/[;,\\s]+/) — birden fazla ayırıcı ile split.\u003C/li>\n\u003C/ul>\n\u003Cp>Yaygın bayraklar (flags):\u003C/p>\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr>\u003Cth>Bayrak\u003C/th>\u003Cth>Anlamı\u003C/th>\u003C/tr>\n  \u003C/thead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>g\u003C/td>\u003Ctd>Global: Tüm eşleşmeleri hedefler\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>i\u003C/td>\u003Ctd>Case-insensitive: Büyük/küçük harf duyarsız\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>m\u003C/td>\u003Ctd>Multiline: ^ ve $ satır başı/sonu davranışı\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>u\u003C/td>\u003Ctd>Unicode modu\u003C/td>\u003C/tr>\n  \u003C/tbody>\n\u003C/table>\n\u003Cp>Regex yöntemleri ve kullanım detayları için: \u003Ca href=\"https://javascript.info/regexp-methods\">https://javascript.info/regexp-methods\u003C/a>.\u003C/p>\n\n\u003Ch3>Template literals ve string temizleme\u003C/h3>\n\u003Cp>Template literals (`backticks`) ile değişken gömme (${...}) ve çok satırlı stringler daha okunabilir olur. Örnek: \u003Cbr>\nconst name = \"Ayşe\";\u003Cbr>\nconsole.log(`Merhaba ${name}! Bugün ${new Date().getDate()} teklifleri var.`)\u003C/p>\n\u003Cp>Temizleme (sanitization) için sık kullanılan adımlar:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cstrong>trim()\u003C/strong> ile baş/son boşlukları kaldırma.\u003C/li>\n  \u003Cli>\u003Cstrong>toLowerCase()/toUpperCase()\u003C/strong> ile kıyaslama standardı oluşturma.\u003C/li>\n  \u003Cli>Fazla boşlukları tek boşluğa indirgeme: s.trim().replace(/\\s+/g, ' ').\u003C/li>\n  \u003Cli>İstenmeyen karakterleri temizlemek için basit bir regex: s.replace(/[^\\w\\s]/g, '') (sadece temel örnek; tüm durumları kapsamayabilir).\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Pratik senaryolar: adım adım\u003C/h3>\n\u003Col>\n  \u003Cli>\n    \u003Cstrong>Kullanıcı adını e-postadan almak\u003C/strong>\u003Cbr>\n    Adımlar: string'i \u003Ccode>@\u003C/code> karakterinden split edin ve ilk öğeyi alın.\u003Cbr>\n    Örnek: const user = \"ayse@example.com\".split('@')[0] // \"ayse\"\n  \u003C/li>\n  \u003Cli>\n    \u003Cstrong>Metni güvenli şekilde 100 karaktere kırpma\u003C/strong>\u003Cbr>\n    Adımlar: if (s.length \u003C= 100) return s; else return s.slice(0, 97) + '...'\n  \u003C/li>\n  \u003Cli>\n    \u003Cstrong>CSV satırını temizleyip alanları kırpma\u003C/strong>\u003Cbr>\n    Adımlar: s.split(',').map(f => f.trim()) — karmaşık CSV için özel parser tercih edin.\n  \u003C/li>\n  \u003Cli>\n    \u003Cstrong>Bir metindeki tüm sayıları almak\u003C/strong>\u003Cbr>\n    Adımlar: const nums = s.match(/\\d+/g) || []\n  \u003C/li>\n\u003C/ol>\n\n\u003Ch3>İpuçları ve iyi uygulamalar\u003C/h3>\n\u003Cul>\n  \u003Cli>Basit işler için önce string metodlarını (slice, indexOf, split) düşünün; regex daha esnek ancak karmaşık olabilir.\u003C/li>\n  \u003Cli>Sık kullanılan regex'leri döngü içinde kullanacaksanız dışarıda derleyin (const re = /.../g) — yeniden oluşturmayı önler.\u003C/li>\n  \u003Cli>split ile kolayca çözebileceğiniz durumlar için karmaşık regex yazmaktan kaçının; bakım kolaylığı önemlidir.\u003C/li>\n  \u003Cli>Unicode ve emoji içeren metinlerde indeksleme beklentiniz dışında sonuç verebilir; bu gibi durumlarda özel kütüphaneler veya ek kontroller gerekebilir.\u003C/li>\n\u003C/ul>\n\n\u003Chr>\n\n\u003Ch3>Kısa referans\u003C/h3>\n\u003Cul>\n  \u003Cli>slice(start, end) — negatif indeksleri destekler.\u003C/li>\n  \u003Cli>substring(start, end) — negatifleri 0 kabul etme ve argümanları ters çevirme davranışı.\u003C/li>\n  \u003Cli>split(sep, limit) — bir dizi döndürür. (MDN: \u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split\">link\u003C/a>)\u003C/li>\n  \u003Cli>replace(pattern, repl) — /g bayrağı ile global değişim; fonksiyonla dinamik dönüşüm. (MDN: \u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace\">link\u003C/a>)\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Kaynaklar\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https://javascript.info/string\">javascript.info — Strings\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://javascript.info/regexp-methods\">javascript.info — RegExp yöntemleri\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace\">MDN — String.prototype.replace()\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split\">MDN — String.prototype.split()\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://calmops.com/programming/javascript/11-javascript-strings-creation-manipulation-template-literals/\">Calmops — Template literals ve string manipülasyonu\u003C/a>\u003C/li>\n\u003C/ul>\n\n\u003Cp>Bu rehber temel kullanım senaryolarını kapsar; daha karmaşık ihtiyaçlarda regex desenlerini dikkatle test etmek ve gerekiyorsa hazır kütüphaneler kullanmak iyi bir yaklaşımdır.\u003C/p>","JS String İşlemleri — Dilimleme, Regex ve Temel Manipülasyon","Temel JS string metodları (slice, substring, split, replace), regex örnekleri ve template literals ile pratik manipülasyon tekniklerini adım adım öğrenin. Kısa,","JS String İşlemleri, substring split replace, regex örnekleri, template literals örnek, string temizleme, JavaScript strings","js-string-islemleri-dilimleme-regex-ve-temel-manipulasyon","2026-11-08T08:18:00.000Z",{"id":16,"title":17,"slug":18},215,"JS String İşlemleri","js-string-islemleri",{"id":20,"name":21,"nickname":22,"slug":23},93,"Onur Tekin","CodeCraftsman","onur-tekin","/media/blog/6677d5bbff99e3cff1fe75769a90acd7.jpg","/media/blog/6677d5bbff99e3cff1fe75769a90acd7_thumb.jpg","/media/blog/6677d5bbff99e3cff1fe75769a90acd7.webp","/media/blog/6677d5bbff99e3cff1fe75769a90acd7_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,633,0,"4 dk okuma süresi","/blog/js-string-islemleri/js-string-islemleri-dilimleme-regex-ve-temel-manipulasyon",[],["Reactive",37],{"title":7,"subTitle":17,"image":24},["Reactive",39],{"title":10,"meta":40,"link":75},[41,43,45,48,51,54,57,60,63,66,69,71,73],{"hid":42,"name":42,"content":11},"description",{"hid":44,"name":44,"content":12},"keywords",{"hid":46,"name":46,"content":47},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":49,"name":49,"content":50},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":52,"property":52,"content":53},"og:type","website",{"hid":55,"property":55,"content":56},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":58,"property":58,"content":59},"og:description","Yeni başlayanlara yönelik kısa kod örnekleri, snippet'ler ve adım adım alıştırmalar. Hızlı uygulamalarla temel programlama mantığını pekiştir.",{"hid":61,"property":61,"content":62},"og:image","https://kodogreniyorum.com/media/blog/6677d5bbff99e3cff1fe75769a90acd7.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/js-string-islemleri/js-string-islemleri-dilimleme-regex-ve-temel-manipulasyon",{"hid":67,"name":67,"content":68},"twitter:card","summary_large_image",{"hid":70,"name":70,"content":56},"twitter:title",{"hid":72,"name":72,"content":59},"twitter:description",{"hid":74,"name":74,"content":62},"twitter:image",[76,78],{"rel":77,"href":65},"canonical",{"rel":79,"href":80},"amphtml","https://amp.kodogreniyorum.com/blog/js-string-islemleri/js-string-islemleri-dilimleme-regex-ve-temel-manipulasyon",["Reactive",82],{"@context":83,"@graph":84},"https://schema.org",[85,98],{"@type":86,"headline":10,"image":62,"author":87,"publisher":90,"datePublished":14,"dateModified":14,"mainEntityOfPage":96,"description":11},"BlogPosting",{"@type":88,"name":21,"url":89},"Person","https://kodogreniyorum.com/yazarlar/onur-tekin",{"@type":91,"name":47,"logo":92},"Organization",{"@type":93,"url":94,"width":95,"height":95},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":97,"@id":65},"WebPage",{"@type":99,"itemListElement":100},"BreadcrumbList",[101,106,110,113],{"@type":102,"position":103,"name":104,"item":105},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":102,"position":107,"name":108,"item":109},2,"Blog","https://kodogreniyorum.com/blog",{"@type":102,"position":111,"name":17,"item":112},3,"https://kodogreniyorum.com/blog/js-string-islemleri",{"@type":102,"position":30,"name":7,"item":65}]