diff --git a/src/filters.js b/src/filters.js index 9b46460da6b6..b13da96bd82f 100644 --- a/src/filters.js +++ b/src/filters.js @@ -217,10 +217,16 @@ angularFilter.date = function(date, format) { var text = date.toLocaleDateString(), fn; if (format && isString(format)) { text = ''; - var parts = []; + var parts = [], match; while(format) { - parts = concat(parts, DATE_FORMATS_SPLIT.exec(format), 1); - format = parts.pop(); + match = DATE_FORMATS_SPLIT.exec(format); + if (match) { + parts = concat(parts, match, 1); + format = parts.pop(); + } else { + parts.push(format); + format = null; + } } foreach(parts, function(value){ fn = DATE_FORMATS[value]; diff --git a/test/FiltersSpec.js b/test/FiltersSpec.js index d28cae82d43c..7e824e0d47ab 100644 --- a/test/FiltersSpec.js +++ b/test/FiltersSpec.js @@ -142,5 +142,9 @@ describe('filter', function() { expect(filter.date(isoString)). toEqual(angular.String.toDate(isoString).toLocaleDateString()); }); + + it('should parse format ending with non-replaced string', function() { + expect(filter.date(morning, 'yy/xxx')).toEqual('10/xxx'); + }); }); });