Back to another round of Web Basics. In the last one, we learned How to Reverse a String in Javascript. By the way, for those new to my community...
For further actions, you may consider blocking this person and/or reporting abuse
I have a function exactly do that. (I use this function for 3 years. I just changed for new ES standards)
In this example, this function firstly takes a string.
After that, the whole string will be lowercase.
After that, the string will be split with empty spaces. (Ex: I HAVE NO IDEA)
Now, we have words array. I use the map method to manipulate the array.
We'll take the first letter of the word. This letter will be uppercase. The others will be lowercase.
If you know how the substring method works, you won't be confused.
And the last one, we'll concatenate the words to create our new string. That's all.
Might be more performant since you have to loop the array anyway
You can just map on the string :v
But no, it's most likely not going to be performant (even like this), because it involves indexing into every character instead of handing the underlying native string to the native method.
Worse yet,
.split('')
and such don't play well with composite Unicode graphemes.Woo, I love this solution! Nice use to the falsy value to check the first character (cause 0 is false). Thanks for sharing 💯
You can omit the second argument in
substring
,substr
andslice
to get the rest of the string until the end.You can also use
charAt(0)
or even.charAt()
to get the first char instead of a slicing method.Nice use to map! And awesome explanation with it! Thanks for sharing 🤓
here's my take on it with ES7
a little cleaner
I didn't think of it that way. I like it!
One-liner solutions are most of the time my favs too! 😜
TextDecoder
solution:Many checks are missing. This is intentional, because we are going to pretend that this is performant.
String.prototype.replace(regex, fn)
solution:If you only want the first word capitalized:
This is probably the best multi-word solution.
I totally forgot about
\b
, it is excellent.I totally emulated it with
/(?:^|\s)\w/
, since capitalizing the whitespace doesn't do anything, but this is just so much better!Does the
i
flag improve performance and not harm it though?I'd potentially hoist the regex and callback constructions out of the function, although that may be crazy to do.
Hi, the
i
doesn't does anything in this case, it is my mania of writing it always. The mdn's docu says this about \w:So \w is case insesitive already.
OH NO
:'(
That was expected, which result do you wanted?
Try my honestly unironically inferior regex and see:
regex ahhhh 😅 I need to get better at that cause I know how powerful it is 😆
Not as fancy as other solutions but I believe this works.
No need to always be fancy. This works perfectly! Great 👍
Awesome guide!
This is one situation where I REALLY wish JS would take after Python.
I'm not familiar with Python -- is it more concise?
Python has an awesome title() method that will capitalize the first letter of every word in a string while lower casing the others.
Another great post as usual. 👍
Thanks! 😄