Last Updated: February 25, 2016
·
2.89K
· benjamincharity

Sentence case filter for AngularJS.

   # in Coffeescript
   myAngularModule.filter "sentence_case", ->
        _.memoize (x) ->
            return unless angular.isString(x)
            x = x.toLowerCase()
            capitalize = (str) ->
                str += ''
                return str.charAt(0).toUpperCase() + str.slice(1)
            fmt = (y) ->
                capitalized = capitalize($.trim(y))

            x = _.map(x.split("."), (z) -> fmt(z)).join(". ")
            x = _.map(x.split("!"), (z) -> fmt(z)).join("! ")
            x = _.map(x.split(","), (z) -> z).join(", ")


// The Javascript Output
myAngularModule.filter("sentence_case", function() {
  return _.memoize(function(x) {
    var capitalize, fmt;

    if (!angular.isString(x)) {
      return;
    }
    x = x.toLowerCase();
    capitalize = function(str) {
      str += '';
      return str.charAt(0).toUpperCase() + str.slice(1);
    };
    fmt = function(y) {
      var capitalized;

      return capitalized = capitalize($.trim(y));
    };
    x = _.map(x.split("."), function(z) {
      return fmt(z);
    }).join(". ");
    x = _.map(x.split("!"), function(z) {
      return fmt(z);
    }).join("! ");
    return x = _.map(x.split(","), function(z) {
      return z;
    }).join(", ");
  });
});