diff --git a/lodash.js b/lodash.js index 31841a83d..e53ebfa08 100644 --- a/lodash.js +++ b/lodash.js @@ -102,7 +102,7 @@ var reUnescapedString = /['\n\r\u2028\u2029\\]/g; /** Used to match words to create compound words */ - var reWords = /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g; + var reWords = /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]+|[0-9]+/g; /** Used to detect and test whitespace */ var whitespace = ( diff --git a/test/test.js b/test/test.js index 2e10a08fe..61a7fcf1a 100644 --- a/test/test.js +++ b/test/test.js @@ -1286,7 +1286,8 @@ _.each(['camel', 'kebab', 'snake'], function(caseName) { var methodName = caseName + 'Case', - func = _[methodName]; + func = _[methodName], + isCamel = caseName == 'camel'; var expected = (function() { switch (caseName) { @@ -1322,10 +1323,13 @@ }); }); + test('`_.' + methodName + '` should work with words in all caps', 1, function() { + strictEqual(func('HELLO WORLD'), isCamel ? 'helloWORLD' : expected); + }); + test('`_.' + methodName + '` should deburr letters', 1, function() { var actual = _.map(burredLetters, function(burred, index) { - var isCamel = caseName == 'camel', - deburrLetter = deburredLetters[index]; + var deburrLetter = deburredLetters[index]; var string = isCamel ? func('z' + burred)