【发布时间】:2016-01-18 08:12:12
【问题描述】:
我已经在这里将每个句子的第一个字母大写,但是当我尝试进一步输入大写单词时,它也会被转换为小写。我还需要在句号后将第一个字母大写。
输入:汤姆很开心。汤姆很伤心
我的解决方案的输出:Tom is happy.tom is sad
预期输出:汤姆很开心。汤姆很伤心
var app = angular.module('myApp', []);
app.filter('capitalizeFirst', function () {
return function (input, scope) {
if(input!=input.toUpperCase())
var text = input.substring(0, 1).toUpperCase() + input.substring(1).toLowerCase();
return text;
}
});
app.directive('capitalizeFirst', ['$filter', function ($filter) {
return {
require: 'ngModel',
link: function (scope, element, attrs, controller) {
controller.$parsers.push(function (value) {
var transformedInput = $filter('capitalizeFirst')(value);
if (transformedInput !== value) {
var el = element[0];
el.setSelectionRange(el.selectionStart, el.selectionEnd);
controller.$setViewValue(transformedInput);
controller.$render();
}
return transformedInput;
});
}
};
}]);
function MyCtrl($scope, $filter) {
$scope.name = $filter('capitalizeFirst')('apple');
}
【问题讨论】:
-
这里有一些demo you can leverage。
标签: jquery regex angularjs forms validation