CamelCase To Title: Jasmine Test
by MrPolywhirl
HTML
<script src="http://searls.github.com/jasmine-all/jasmine-all-min.js"></script>
JavaScript
var data = [
'helloWorld',
'HelloWorld',
'IWasBornInTheUSA',
'iWasBornInTheUSA',
"lowercase",
"Class",
"MyClass",
"HTML",
"PDFLoader",
"AString",
"SimpleXMLParser",
"GL11Version",
"99Bottles",
"May5",
"BFG9000", ];
describe('Test CameltoTitle', function () {
data.forEach(function (value) {
var title = camelToTitle(value);
var camel = titleToCamel(value);
it(value + ' -> ' + title, function () {
expect(value).toEqual(camel);
});
});
});
function camelToTitle(str) {
return str.replace(/([A-Z][a-z]+)/g, " $1") // Words beginning with UC
.replace(/([A-Z][A-Z]+)/g, " $1") // "Words" of only UC
.replace(/([^A-Za-z ]+)/g, " $1"); // "Words" of non-letters
}
function titleToCamel(str) {
return str.replace(/\W+(.)/g, function (x, chr) {
return chr.toUpperCase();
})
}