JavaScript kullanarak bir dizedeki her kelimenin ilk harfini nasıl büyük harf yapabilirim?


112

Bir dizedeki her kelimenin ilk harfini büyük yapan bir işlev yazmaya çalışıyorum (dizeyi ilk harf büyüklüğüne dönüştürerek).

Örneğin, girdi olduğunda "I'm a little tea pot", "I'm A Little Tea Pot"çıktı olmasını bekliyorum . Ancak işlev geri döner "i'm a little tea pot".

Bu benim kodum:

function titleCase(str) {
  var splitStr = str.toLowerCase().split(" ");

  for (var i = 0; i < splitStr.length; i++) {
    if (splitStr.length[i] < splitStr.length) {
      splitStr[i].charAt(0).toUpperCase();
    }

    str = splitStr.join(" ");
  }

  return str;
}

console.log(titleCase("I'm a little tea pot"));


Bu, bir dizenin ilk harfini büyük harfle yazıyor gibi görünmüyor. Veya dizede bulunan her kelimeyi büyük harfle yazmak istediğinizi mi söylüyorsunuz?
epascarello

2
Büyük harf kullanımınızı sonucunuza atamıyorsunuz splitStr[i].charAt(0).toUpperCase();, olacak void. Yapmanız gerekensplitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);
somethinghere

1
Önce bize söylemelisin. Ne olduğunu o fonksiyonu ile yanlış? Beklenen sonuç nedir ve bunun yerine ne döndürür?
user4642212

Bu işlev, her kelimenin ilk karakterini büyük harf yapmaya çalışıyor gibi görünüyor.
Halcyon

2
Başlığın dediği gibi, dizedeki her kelimenin ilk harfini büyük harf yapmaya çalışıyorum. Doğası gereği destekleyici olması beklenen bir forumdaki olumsuz oyları veya olumsuzlukları takdir etmiyorum. @somethinghere - Cevabınız için teşekkürler.
slurrr

Yanıtlar:


162

Değişikliklerinizi tekrar diziye atamıyorsunuz, bu yüzden tüm çabalarınız boşuna. Bunu dene:

function titleCase(str) {
   var splitStr = str.toLowerCase().split(' ');
   for (var i = 0; i < splitStr.length; i++) {
       // You do not need to check if i is larger than splitStr length, as your for does that for you
       // Assign it back to the array
       splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     
   }
   // Directly return the joined string
   return splitStr.join(' '); 
}

document.write(titleCase("I'm a little tea pot"));


@Halcyon Bu sadece her kelime için bir harfle sonuçlanır.
epascarello

14
Es6'da, bunu biraz daha hoş görünen yapabilirsiniz:myStr.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.substring(1)).join(' ');
Patrick Michaelsen

1
@PatrickMichaelsen Gerçekten yapabilirsiniz. Yine de cevabı değiştirmeyeceğim, 2015'ten ve zamanın değiştiğini biliyorum ama gelecek nesillere de devam edeceğim. Ayrıca, ben de artık böyle yazmazdım :) Ama kendi cevabınız olarak kendi cevabınızı göndermekten çekinmeyin sanırım?
somethinghere

1
Evet, kabul ediyorum, mevcut cevap iyi. Bu yüzden, sadece yeni ziyaretçilere referans olması için yorumlara koydum.
Patrick Michaelsen

1
Bu işlevi 3 rakip işlevle karşılaştırdım ve en yüksek performanslı olduğunu gördüm - en kötü rakibin yürütme süresinin 1 / 3'ünden daha az (Chrome 73). jsben.ch/AkHgP
Michael Thompson

88

Çok kolay bir şeyi karmaşık hale getiriyorsunuz. Bunu CSS'nize ekleyebilirsiniz:

.capitalize {
    text-transform: capitalize;
}

JavaScript'te sınıfı bir öğeye ekleyebilirsiniz

 document.getElementById("element").className = "capitalize";

@epascarello seni anlamıyorum, bana ne söylüyorsun?
Marcos Pérez Gude

soru "Bu işlevde sorun nedir?", aksi takdirde bu, stackoverflow.com/questions/1026069/… veya stackoverflow.com/questions/196972/…
Hacketo

1
yanıt için teşekkürler, ancak bunu pratik için javascript kullanarak yapmaya çalışıyorum @ MarcosPérezGude
slurrr

1
Evet, gerçekten çok yönlü
Marcos Pérez Gude

3
Maalesef bazı durumlarda değer 20 mm ise ve büyük harf kullanırsanız 20Mm olacaktır. Bazı durumlarda javascript tek yöntem olabilir.
Buts

74

ECMAScript 6 sürümü:

const toTitleCase = (phrase) => {
  return phrase
    .toLowerCase()
    .split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ');
};

let result = toTitleCase('maRy hAd a lIttLe LaMb');
console.log(result);


1
Ayrıca toLowerCase(), en başta, kullanıcı veya dizenin büyük / küçük harflerin karışık olması durumunda eksik olduğunuzu düşünüyorum .
ArchNoob

42

Bence bu yol daha hızlı olmalı; çünkü dizgiyi bölmez ve tekrar birleştirmez; sadece normal ifadeyi kullanarak.

var str = text.replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase());

Açıklama :

  1. (^\w{1}): dizenin ilk karakteriyle eşleşir
  2. |: veya
  3. (\s{1}\w{1}): bir boşluktan sonra gelen bir karakterle eşleştir
  4. g: tümünü eşleştir
  5. match => match.toUpperCase (): ile değiştirebilir işlevi alabilir, yani; eşleşmeyi büyük harf eşleşmesi ile değiştir

1
Çok daha temiz!
Cliff Hall

Neden \s{1}? \s+Kelimelerin arasında birkaç boşluk olsa bile işe yaradığını söyleyebilirim
Cristian Traìna

Benim durumumda; tam olarak 1 boşluk ve evet; İşe yaramalı!
nimeresam

Dizeler değişmezdir. regex, başlık altında bölünecek ve birleştirilecektir. Aslında hiçbir yolu yok.
bluegrounds


18

ECMAScript 6'da, ok işlevini kullanan tek satırlık bir yanıt:

const captialize = words => words.split(' ').map( w =>  w.substring(0,1).toUpperCase()+ w.substring(1)).join(' ')

3
Güzel! Daha w[0]da kısaltmak için kullanabilirsiniz .. Normal ifadeden farklı olarak HERHANGİ bir sembolle kolayca genişletilebilir, ancak yalnızca değil space. Her neyse ( [ ", çünkü bu sembollerden sonra harfler de büyük yazılmalıdır. Çözümünüz için teşekkürler!
Systems Rebooter

16

En Kısa Bir Astar (ayrıca son derece hızlı):

 text.replace(/(^\w|\s\w)/g, m => m.toUpperCase());

Açıklama:

  • ^\w : dizenin ilk karakteri
  • | : veya
  • \s\w : boşluktan sonraki ilk karakter
  • (^\w|\s\w) Deseni yakalayın.
  • g Bayrak: Tüm tekrarlarla eşleşir.

Geri kalanının küçük harf olduğundan emin olmak istiyorsanız:

text.replace(/(^\w|\s\w)(\S*)/g, (_,m1,m2) => m1.toUpperCase()+m2.toLowerCase())

Bu harika! RegEx en iyisidir. Bu bölümün ne işe yaradığı hakkında daha fazla bilgi verebilir misiniz? m => m.toUpperCase()
marcin2x4

1
@ marcin2x4 milk karakterle eşleşir, bu nedenle ilk karakteri büyük harf yapar.
tavuklar

10

ECMAScript 6 sürümü:

title
    .split(/ /g).map(word =>
        `${word.substring(0,1).toUpperCase()}${word.substring(1)}`)
    .join(" ");

6
Bunu sadece şimdi gördüm ve oldukça düzgün, ama sanırım " "yerine a kullanarak katılmanız gerekiyor "", aksi takdirde büyük bir kelime alacaksınız, değil mi?
somethinghere

9

𝗙𝗮𝘀𝘁𝗲𝘀𝘁 𝗦𝗼𝗹𝘂𝘁𝗶𝗼𝗻 𝗙𝗼𝗿 𝗟𝗮𝘁𝗶𝗻-𝗜 𝗖𝗵𝗮𝗿𝗮𝗰𝘁𝗲𝗿𝘀

Her harfin büyük harf kullanımını değiştirmek için bir normal ifade işlevi kullanabilirsiniz. V8 JIST optimizasyonları ile bunun hızlı ve bellek açısından verimli olduğu kanıtlanmalıdır.

// Only works on Latin-I strings
'tHe VeRy LOOong StRINg'.replace(/\b[a-z]|['_][a-z]|\B[A-Z]/g, function(x){return x[0]==="'"||x[0]==="_"?x:String.fromCharCode(x.charCodeAt(0)^32)})

Veya bir işlev olarak:

// Only works for Latin-I strings
var fromCharCode = String.fromCharCode;
var firstLetterOfWordRegExp = /\b[a-z]|['_][a-z]|\B[A-Z]/g;
function toLatin1UpperCase(x){ // avoid frequent anonymous inline functions
    var charCode = x.charCodeAt(0);
    return charCode===39 ? x : fromCharCode(charCode^32);
}
function titleCase(string){
    return string.replace(firstLetterOfWordRegExp, toLatin1UpperCase);
}

Bu karşılaştırmaya göre , kod, Chrome'daki bir sonraki en iyi çözümden% 33'ün üzerinde daha hızlı.


𝗗𝗲𝗺𝗼

<textarea id="input" type="text">I'm a little tea pot</textarea><br /><br />
<textarea id="output" type="text" readonly=""></textarea>
<script>
(function(){
    "use strict"
    var fromCode = String.fromCharCode;
    function upper(x){return x[0]==="'"?x:fromCode(x.charCodeAt(0) ^ 32)}
    (input.oninput = function(){
      output.value = input.value.replace(/\b[a-z]|['_][a-z]|\B[A-Z]/g, upper);
    })();
})();
</script>


İşlevinize şu şekilde dönüş eklemeyi unuttunuz: function autoCaps (string) {return string.replace (/ \ b [az] | \ B [AZ] / g, function (x) {return String.fromCharCode (x.charCodeAt (0) ^ 32);}); }
Archy

@Archy Düzeltmeniz için teşekkür ederiz. Önerdiğiniz değişikliği yaptım.
Jack Giffin


6

Ayrıca iyi bir seçenek (özellikle freeCodeCamp kullanıyorsanız ):

function titleCase(str) {
  var wordsArray = str.toLowerCase().split(/\s+/);
  var upperCased = wordsArray.map(function(word) {
    return word.charAt(0).toUpperCase() + word.substr(1);
  });
  return upperCased.join(" ");
}

5

Bu rutin, tireli sözcükleri ve kesme işaretli sözcükleri işleyecektir.

function titleCase(txt) {
    var firstLtr = 0;
    for (var i = 0;i < text.length;i++) {
        if (i == 0 &&/[a-zA-Z]/.test(text.charAt(i)))
            firstLtr = 2;
        if (firstLtr == 0 &&/[a-zA-Z]/.test(text.charAt(i)))
            firstLtr = 2;
        if (firstLtr == 1 &&/[^a-zA-Z]/.test(text.charAt(i))){
            if (text.charAt(i) == "'") {
                if (i + 2 == text.length &&/[a-zA-Z]/.test(text.charAt(i + 1)))
                    firstLtr = 3;
                else if (i + 2 < text.length &&/[^a-zA-Z]/.test(text.charAt(i + 2)))
                    firstLtr = 3;
            }
        if (firstLtr == 3)
            firstLtr = 1;
        else
            firstLtr = 0;
        }
        if (firstLtr == 2) {
            firstLtr = 1;
            text = text.substr(0, i) + text.charAt(i).toUpperCase() + text.substr(i + 1);
        }
        else {
            text = text.substr(0, i) + text.charAt(i).toLowerCase() + text.substr(i + 1);
        }
    }
}

titleCase("pAt o'Neil's");
// returns "Pat O'Neil's";

4
function LetterCapitalize(str) { 
  return str.split(" ").map(item=>item.substring(0,1).toUpperCase()+item.substring(1)).join(" ")
}

4

let cap = (str) => {
  let arr = str.split(' ');
  arr.forEach(function(item, index) {
    arr[index] = item.replace(item[0], item[0].toUpperCase());
  });

  return arr.join(' ');
};

console.log(cap("I'm a little tea pot"));

Hızlı Okunabilir Sürüm bkz. Kıyaslama http://jsben.ch/k3JVz görüntü açıklamasını buraya girin


4

ES6 sözdizimi

const captilizeAllWords = (sentence) => {
  if (typeof sentence !== "string") return sentence;
  return sentence.split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ');
}


captilizeAllWords('Something is going on here')

Geri kalanının büyük harfle yazılmadığından emin olmak için word.slice (1) 'in word.slice (1) .toLowerCase () ile değiştirilmesi gerekmez mi (orijinal cümlede olması ihtimaline karşı)?
muni764

4

Hayatınızı çok daha kolay hale getirebilecek modern JS sözdizimini kullanabilirsiniz. İşte verilen sorun için kod pasajım:

const capitalizeString = string => string.split(' ').map(item => item.replace(item.charAt(0), item.charAt(0).toUpperCase())).join(' ');
capitalizeString('Hi! i am aditya shrivastwa')


3

Okunabilirlik nedeniyle genellikle regexp kullanmamayı tercih ederim ve ayrıca döngülerden uzak durmaya çalışırım. Bunun okunabilir olduğunu düşünüyorum.

function capitalizeFirstLetter(string) {
    return string && string.charAt(0).toUpperCase() + string.substring(1);
};

3

Aşağıdaki fonksiyon, dizgenin tüm kelimelerin ilk harflerini (yani normal ifade tanımına göre \w+) büyük harfe dönüştürmeye çalışmaktan başka herhangi bir bölümünü değiştirmez .

Araçlarla İşte bu mu değil ille TitleCase kelime dönüştürmek, ancak sorunun başlık yazdığını yapar: "Her Kelime A dize ilk harfini büyük - JavaScript"

  • Dizeyi bölme
  • her kelimeyi\w+ şuna eşdeğer normal ifadeyle belirleyin:[A-Za-z0-9_]+
    • işlevi String.prototype.toUpperCase()her kelimenin yalnızca ilk karakterine uygulayın .
function first_char_to_uppercase(argument) {
  return argument.replace(/\w+/g, function(word) {
    return word.charAt(0).toUpperCase() + word.slice(1);
  });
}

Örnekler:

first_char_to_uppercase("I'm a little tea pot");
// "I'M A Little Tea Pot"
// This may look wrong to you, but was the intended result for me
// You may wanna extend the regex to get the result you desire, e.g., /[\w']+/

first_char_to_uppercase("maRy hAd a lIttLe LaMb");
// "MaRy HAd A LIttLe LaMb"
// Again, it does not convert words to Titlecase

first_char_to_uppercase(
  "ExampleX: CamelCase/UPPERCASE&lowercase,exampleY:N0=apples"
);
// "ExampleX: CamelCase/UPPERCASE&Lowercase,ExampleY:N0=Apples"

first_char_to_uppercase("…n1=orangesFromSPAIN&&n2!='a sub-string inside'");
// "…N1=OrangesFromSPAIN&&N2!='A Sub-String Inside'"

first_char_to_uppercase("snake_case_example_.Train-case-example…");
// "Snake_case_example_.Train-Case-Example…"
// Note that underscore _ is part of the RegEx \w+

first_char_to_uppercase(
  "Capitalize First Letter of each word in a String - JavaScript"
);
// "Capitalize First Letter Of Each Word In A String - JavaScript"

Düzenleme 2019-02-07: Gerçek Başlık Sırası istiyorsanız (yani yalnızca ilk harf büyük, tüm diğerleri küçük harf):

function titlecase_all_words(argument) {
  return argument.replace(/\w+/g, function(word) {
    return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
  });
}

Her ikisini de gösteren örnekler:

test_phrases = [
  "I'm a little tea pot",
  "maRy hAd a lIttLe LaMb",
  "ExampleX: CamelCase/UPPERCASE&lowercase,exampleY:N0=apples",
  "…n1=orangesFromSPAIN&&n2!='a sub-string inside'",
  "snake_case_example_.Train-case-example…",
  "Capitalize First Letter of each word in a String - JavaScript"
];
for (el in test_phrases) {
  let phrase = test_phrases[el];
  console.log(
    phrase,
    "<- input phrase\n",
    first_char_to_uppercase(phrase),
    "<- first_char_to_uppercase\n",
    titlecase_all_words(phrase),
    "<- titlecase_all_words\n "
  );
}

// I'm a little tea pot <- input phrase
// I'M A Little Tea Pot <- first_char_to_uppercase
// I'M A Little Tea Pot <- titlecase_all_words

// maRy hAd a lIttLe LaMb <- input phrase
// MaRy HAd A LIttLe LaMb <- first_char_to_uppercase
// Mary Had A Little Lamb <- titlecase_all_words

// ExampleX: CamelCase/UPPERCASE&lowercase,exampleY:N0=apples <- input phrase
// ExampleX: CamelCase/UPPERCASE&Lowercase,ExampleY:N0=Apples <- first_char_to_uppercase
// Examplex: Camelcase/Uppercase&Lowercase,Exampley:N0=Apples <- titlecase_all_words

// …n1=orangesFromSPAIN&&n2!='a sub-string inside' <- input phrase
// …N1=OrangesFromSPAIN&&N2!='A Sub-String Inside' <- first_char_to_uppercase
// …N1=Orangesfromspain&&N2!='A Sub-String Inside' <- titlecase_all_words

// snake_case_example_.Train-case-example… <- input phrase
// Snake_case_example_.Train-Case-Example… <- first_char_to_uppercase
// Snake_case_example_.Train-Case-Example… <- titlecase_all_words

// Capitalize First Letter of each word in a String - JavaScript <- input phrase
// Capitalize First Letter Of Each Word In A String - JavaScript <- first_char_to_uppercase
// Capitalize First Letter Of Each Word In A String - Javascript <- titlecase_all_words

3
function titleCase(str) {

    var myString = str.toLowerCase().split(' ');
    for (var i = 0; i < myString.length; i++) {
        var subString = myString[i].split('');
        for (var j = 0; j < subString.length; j++) {
            subString[0] = subString[0].toUpperCase();
        }
        myString[i] = subString.join('');
    }

    return myString.join(' ');
}

1
Cevabınıza bazı yorumlar ekleyin.
HDJEMAI

3

Veya replace () kullanılarak yapılabilir ve her kelimenin ilk harfini "büyükCase" ile değiştirebilir.

function titleCase(str) {
    return str.toLowerCase().split(' ').map(function(word) {
               return word.replace(word[0], word[0].toUpperCase());
           }).join(' ');
}

titleCase("I'm a little tea pot");

2

mapTemelde işlevle bunu nasıl yapabileceğiniz aşağıda açıklanmıştır , kabul edilen yanıtla aynı şeyi yapar, ancak for-loop. Bu nedenle, size birkaç satır kod tasarrufu sağlar.

function titleCase(text) {
  if (!text) return text;
  if (typeof text !== 'string') throw "invalid argument";

  return text.toLowerCase().split(' ').map(value => {
    return value.charAt(0).toUpperCase() + value.substring(1);
  }).join(' ');
}

console.log(titleCase("I'm A little tea pot"));


2

Aşağıda, bir dizedeki her kelimenin ilk alfabesini büyük harfle yazmanın başka bir yolu vardır.

Kullanarak bir String nesnesi için özel bir yöntem oluşturun prototype.

String.prototype.capitalize = function() {
    var c = '';
    var s = this.split(' ');
    for (var i = 0; i < s.length; i++) {
        c+= s[i].charAt(0).toUpperCase() + s[i].slice(1) + ' ';
    }
    return c;
}
var name = "john doe";
document.write(name.capitalize());

1

@ Bir şeyin daha kompakt (ve modern) yeniden yazılması, önerilen çözüm:

let titleCase = (str => str.toLowerCase().split(' ').map(
                c => c.charAt(0).toUpperCase() + c.substring(1)).join(' '));
    
document.write(titleCase("I'm an even smaller tea pot"));


1

Ham kod:

function capi(str) {
    var s2 = str.trim().toLowerCase().split(' ');
    var s3 = [];
    s2.forEach(function(elem, i) {
        s3.push(elem.charAt(0).toUpperCase().concat(elem.substring(1)));
    });
    return s3.join(' ');
}
capi('JavaScript string exasd');

biraz daha ayrıntı vermelisiniz (sorun neydi?)
hering

1

replace()Normal bir ifade ile kullandım :

function titleCase(str) {

  var newStr = str.toLowerCase().replace(/./, (x) => x.toUpperCase()).replace(/[^']\b\w/g, (y) => y.toUpperCase());

  console.log(newStr);
}

titleCase("I'm a little tea pot")

1

Tam ve basit bir çözüm burada:

String.prototype.replaceAt=function(index, replacement) {
        return this.substr(0, index) + replacement+ this.substr(index
  + replacement.length);
}
var str = 'k j g           u              i l  p';
function capitalizeAndRemoveMoreThanOneSpaceInAString() {
    for(let i  = 0; i < str.length-1; i++) {
        if(str[i] === ' ' && str[i+1] !== '')
            str = str.replaceAt(i+1, str[i+1].toUpperCase());
    }
    return str.replaceAt(0, str[0].toUpperCase()).replace(/\s+/g, ' ');
}
console.log(capitalizeAndRemoveMoreThanOneSpaceInAString(str));

Bu yöntem her çağrıldığında neden String.prototype'ı değiştiriyorsunuz? Herhangi bir şey varsa , bunu bir kez yapmanız gerekir ve tercihen yerleşiklerin prototiplerine asla dokunmazsınız. Bu bir hayır-hayır biraz ... var
somethinghere

0

Lütfen aşağıdaki kodu kontrol edin.

function titleCase(str) {
  var splitStr = str.toLowerCase().split(' ');
  var nstr = ""; 
  for (var i = 0; i < splitStr.length; i++) {
    nstr +=  (splitStr[i].charAt(0).toUpperCase()+ splitStr[i].slice(1) + " 
    ");
  }
  console.log(nstr);
}

var strng = "this is a new demo for checking the string";
titleCase(strng);

2
Sınırlı ve anında yardım sağlayabilecek bu kod parçacığı için teşekkür ederiz. Bir Doğru bir açıklama ölçüde uzun vadeli değer artıracak göstererek neden bu soruna iyi bir çözüm olduğunu ve diğer benzer sorularla gelecek okuyucularına daha kullanışlı bir hale getirecektir. Yaptığınız varsayımlar da dahil olmak üzere bazı açıklamalar eklemek için lütfen cevabınızı düzenleyin .
iBug

0

ECMA2017 veya ES8 itibariyle

const titleCase = (string) => {
  return string
    .split(' ')
    .map(word => word.substr(0,1).toUpperCase() + word.substr(1,word.length))
    .join(' ');
};

let result = titleCase('test test test');
console.log(result);

Açıklama:
1. Önce, "test test test" dizesini "titleCase" fonksiyonumuza geçiriyoruz.
2. Bir dizgeyi boşluk temelinde böleriz, böylece ilk işlev olan "bölme" nin sonucu ["test", "test", "test"] olacaktır
. dizide. İlk karakteri büyük harfle yazıyoruz ve kalan karakteri ona ekliyoruz.
4. Son olarak, dizeyi sapce'ye göre böldüğümüzde, boşluk kullanarak diziyi birleştiriyoruz.


Sanırım ayrılmadan önce en başta bir şeyi kaçırıyorsun ve bu toLowerCase().
ArchNoob

@ArchNoob, evet bölünmeden önce toLowerCase () ekleyebiliriz. Ancak, "teSt test" girişi için "TeSt Test" çıktısı istiyorsak, bu durumda, toLowerCase () ekleyemeyiz gibi tamamen kullanım durumuna bağlıdır.
Pulkit Aggarwal

0

function titleCase(str) {
  //First of all, lets make all the characters lower case
  let lowerCaseString = "";
  for (let i = 0; i < str.length; i++) {
    lowerCaseString = lowerCaseString + str[i].toLowerCase();
  }
  //Now lets make the first character in the string and the character after the empty character upper case and leave therest as it is
  let i = 0;
  let upperCaseString = "";
  while (i < lowerCaseString.length) {
    if (i == 0) {
      upperCaseString = upperCaseString + lowerCaseString[i].toUpperCase();
    } else if (lowerCaseString[i - 1] == " ") {
      upperCaseString = upperCaseString + lowerCaseString[i].toUpperCase();
    } else {
      upperCaseString = upperCaseString + lowerCaseString[i];
    }
    i = i + 1;
  }
  console.log(upperCaseString);

  return upperCaseString;
}

titleCase("hello woRLD");


0

Üç fonksiyonları kullandık Buraya toLowerCase(), toUpperCase()vereplace(regex,replacer)

function titleCase(str) { 
     return str.toLowerCase().replace(/^(\w)|\s(\w)/g, (grp) => grp.toUpperCase()); 
}

titleCase("I'm a little tea pot");

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.