使用AngularJS将首字母大写

时间:2016-02-15 16:08:17

标签: angularjs filter capitalize

我知道AngularJS中有一个大写的过滤器,但是我想创建一个函数来仅使用全名的首字母大写,但有一些限制。介词(“da,de,di,do,du,das,des,dis,dos,dus”)应为小写。

例如:

  • joséDasilva - >何塞·达席尔瓦
  • joãodossantos - > JoãodosSantos

有没有一种有效的方法可以做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以为此制作自定义过滤器:

.filter("name", function() {
    var ignoreWords = ["da", "de", "di", "do", "du", "das", "des", "dis", "dos", "dus"]
    return function(name) {
      return name.split(" ").map(function(word) {
        if (ignoreWords.indexOf(word.toLowerCase()) > -1) {
          return word[0].toLowerCase() + word.substr(1);
        } else {
          return word[0].toUpperCase() + word.substr(1);
        }
    }).join(" ")
  }
});

演示:http://plnkr.co/edit/Xw1vrASJEP4VU53HFs8v?p=preview