diff --git a/lodash.js b/lodash.js index 711020039..c15d142f5 100644 --- a/lodash.js +++ b/lodash.js @@ -105,11 +105,10 @@ /** Used to match words to create compound words */ var reWords = (function() { - var nums = '[0-9]', - upper = '[A-Z\\xC0-\\xD6\\xD8-\\xDE]', - lower = '[a-z\\xDF-\\xF6\\xF8-\\xFF]+' + nums + '*'; + var upper = '[A-Z\\xC0-\\xD6\\xD8-\\xDE]', + lower = '[a-z\\xDF-\\xF6\\xF8-\\xFF]+'; - return RegExp(upper + '{2,}(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|' + nums + '+', 'g'); + return RegExp(upper + '{2,}(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g'); }()); /** Used to detect and test whitespace */ diff --git a/test/test.js b/test/test.js index cf944cb8b..3104f2b3c 100644 --- a/test/test.js +++ b/test/test.js @@ -11657,6 +11657,16 @@ deepEqual(actual, [['a'], ['b'], ['c']]); }); + + test('should work with compound words', 6, function() { + deepEqual(_.words('LETTERSAeiouAreVowels'), ['LETTERS', 'Aeiou', 'Are', 'Vowels']); + deepEqual(_.words('aeiouAreVowels'), ['aeiou', 'Are', 'Vowels']); + deepEqual(_.words('aeiou2Consonants'), ['aeiou', '2', 'Consonants']); + + deepEqual(_.words('LETTERSÆiouAreVowels'), ['LETTERS', 'Æiou', 'Are', 'Vowels']); + deepEqual(_.words('æiouAreVowels'), ['æiou', 'Are', 'Vowels']); + deepEqual(_.words('æiou2Consonants'), ['æiou', '2', 'Consonants']); + }); }()); /*--------------------------------------------------------------------------*/