Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regex capitalize first letter every word, also after a special character like a dash

I use this #(\s|^)([a-z0-9-_]+)#i for capitalize every first letter every word, i want it also to capitalize the letter if it's after a special mark like a dash(-)

Now it shows:

This Is A Test For-stackoverflow 

And i want this:

This Is A Test For-Stackoverflow 

Any suggestions/samples for me?

I'am not a pro, so try to keep it simple for me to understand.

like image 655
Simmer Avatar asked Jun 06 '11 11:06

Simmer


People also ask

How do you capitalize the first letter in regex?

replace(/\b\w/g, c => c. toUpperCase()); The regular expression basically matches the first letter of each word within the given string and transforms only that letter to uppercase.

What is it called when you capitalize the first letter of every word?

Title case, which capitalizes the first letter of certain key words. Sentence case, in which titles are capitalized like sentences. Initial case, where the first letter of every word is capitalized.

Which case capitalizes the first letter of every sentence?

Explanation: Upper case capitalize the first letter of a sentence and leave all other letters as lowercase.


1 Answers

+1 for word boundaries, and here is a comparable Javascript solution. This accounts for possessives, as well:

var re = /(\b[a-z](?!\s))/g; var s = "fort collins, croton-on-hudson, harper's ferry, coeur d'alene, o'fallon";  s = s.replace(re, function(x){return x.toUpperCase();}); console.log(s); // "Fort Collins, Croton-On-Hudson, Harper's Ferry, Coeur D'Alene, O'Fallon" 
like image 142
NotNedLudd Avatar answered Sep 24 '22 21:09

NotNedLudd