unCamelCase.js
/** | |
* Turns someCrazyName into Some Crazy Name | |
* Decent job of acroynyms: | |
* ABCAcryonym => ABC Acryoynm | |
* xmlHTTPRequest => Xml HTTP Request | |
* It also handles numeric values: | |
* seller1ID => Seller 1 ID | |
*/ | |
String.prototype.unCamelCase = function(){ | |
return this | |
// insert a space between lower/number & upper/number | |
.replace(/([a-z]|[0-9])([A-Z]|[0-9])/g, '$1 $2') | |
// space before last upper/number in a sequence followed by lower | |
.replace(/\b([A-Z]+|[0-9]+)([A-Z])([a-z])/, '$1 $2$3') | |
// uppercase the first character | |
.replace(/^./, function (str) { | |
return str.toUpperCase(); | |
}) | |
} | |
// Or, one liner. | |
String.prototype.unCamelCase=function(){return this.replace(/([a-z]|[0-9])([A-Z]|[0-9])/g,'$1 $2').replace(/\b([A-Z]+|[0-9]+)([A-Z])([a-z])/,'$1 $2$3').replace(/^./,function(s){return s.toUpperCase();})} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment